Compartilhar via


Navegar por uma sessão de depuração no Visual Studio (XAML e C#)

Este guia rápido demonstra como navegar em sessões de depuração do Visual Studio e como exibir e alterar o estado do programa em uma sessão.

Este guia rápido é para desenvolvedores que são novos para a depuração com o Visual Studio e a sessão de depuração para desenvolvedores que desejam aprender mais sobre como navegar em um Visual Studio. Ele não ensina a arte de depurar em si. Os métodos no código de exemplo destinam-se somente para demonstrar os procedimentos de depuração descritos neste tópico. Os métodos não empregar as práticas recomendadas de design de aplicativo ou função. Na verdade, você rapidamente descobrirá que os métodos e o aplicativo em si, não muita coisa alguma.

As seções deste guia rápido foram projetadas para serem independentes como possíveis, portanto você pode ignorar qualquer seção que inclui informações que você já estiver familiarizado com. Você também não é necessárias para criar um aplicativo de exemplo; No entanto, recomendamos-lo e fez o processo mais fácil possível.

Atalhos de teclado do depurador. Navegação de depurador do Visual Studio é otimizada para o mouse e teclado. Muitas das etapas neste tópico incluem o Acelerador de teclado ou a tecla de atalho em um comentário entre parênteses. Por exemplo, (teclado: F5) indica que a tecla F5 inicia ou continua a execução do depurador digitando.

Neste tópico

Você pode aprender como:

  • Criar o aplicativo de exemplo

  • Definir e executar um ponto de interrupção, etapa em um método e examinar os dados de programa

  • Para sobre e de métodos

  • Definir pontos de interrupção condicionais, executar até o cursor e visualizar uma variável

  • Editar e continuar, recuperar de uma exceção

Criar o aplicativo de exemplo

A depuração é sobre código, portanto, o aplicativo de exemplo usa a estrutura de aplicativo da Windows Store apenas para criar um arquivo de origem no qual você pode ver como funciona a navegar de uma sessão de depuração e como examinar e alterar o estado do programa. Todo o código que irá chamar é chamado do construtor da página principal; controles não é adicionado e nenhum evento é tratado.

Criar um aplicativo da Windows Store c# padrão Abra o Visual Studio. Na home page, escolha o novo projeto link. Na caixa de diálogo Novo projeto, escolha Visual C# no instalados lista e, em seguida, escolha da Windows Store. Na lista de modelos de projeto, escolha aplicativo. Visual Studio cria uma nova solução e projeto e exibe o designer de MainPage. XAML e o editor de código XAML.

Abrir o arquivo de origem MainPage.xaml.cs. Clique em qualquer lugar no editor do XAML e escolha Exibir código. O arquivo code-behind MainPage.xaml.cs será exibido. Observe que apenas um método, o MainPage() construtor, está listado no arquivo.

Substitua o construtor MainPage com o código de exemplo. Exclua o método MainPage(). Siga este link: Código de exemplo da navegação do depurador (XAML e C#), e, em seguida, copie o código listado na seção c# para a área de transferência. (Escolha novamente no navegador ou do Visualizador da Ajuda para retornar a esta página de início rápido.) No editor do Visual Studio, cole o código a partial class MainPage bloco. Escolha CTRL + s para salvar o arquivo.

Agora você pode acompanhar os exemplos neste tópico.

Definir e executar um ponto de interrupção, etapa em um método e examinar os dados de programa

A maneira mais comum que você pode iniciar uma sessão de depuração é escolher Iniciar depuração do Depurar menu (teclado: F5). Execução começa e continua até que um ponto de interrupção é atingido, você suspenda a execução manualmente, ocorre uma exceção, ou o aplicativo termina.

Quando a execução é suspensa no depurador, você pode exibir o valor de uma variável de ativo em uma dica de dados passando o mouse sobre a variável. Você também pode abrir as janelas variáveis locais e Autos para ver a lista das variáveis ativas e seus valores atuais. Adicionando uma ou mais variáveis para um permite a janela Inspeção enfocar o valor das variáveis como o aplicativo continua a execução.

Depois que você suspenda a execução do aplicativo (que também é chamado de invadir o depurador), você controla a maneira que o restante do código do programa é executado. Você pode continuar a linha por linha, mudando de uma chamada de método para o método em si, ou você pode executar um método chamado em uma única etapa. Esses procedimentos são chamados percorrendo o aplicativo. Você também pode retomar a execução padrão do aplicativo, executando o próximo ponto de interrupção que você definiu, ou para a linha onde você o posicionou o cursor. Você pode parar a sessão de depuração a qualquer momento. O depurador foi projetado para executar as operações de limpeza necessárias e sair da execução.

Exemplo 1

Neste exemplo, você definir um ponto de interrupção no construtor MainPage do arquivo MainPage.xaml.cs, passar para o primeiro método, exibir valores de variáveis e parar a depuração.

Um ponto de interrupção. Definir um ponto de interrupção na instrução methodTrack = "Main Page"; no construtor MainPage. Escolha a linha na medianiz sombreada do editor de código fonte (teclado: Posicione o cursor na linha e pressione a tecla F9).

Entrar

O ícone de ponto de interrupção aparece na medianiz.

Executar até o ponto de interrupção. Iniciar a sessão de depuração, escolhendo Iniciar depuração sobre o Depurar menu (teclado: F5).

O aplicativo começa a ser executado e suspende a execução imediatamente antes da instrução em que você definir o ponto de interrupção. Ícone da linha atual na medianiz identifica o local e a instrução atual é realçada.

Definir um ponto de interrupção

Você agora está no controle da execução do aplicativo e pode examinar o estado do programa que você percorrer as instruções de programa.

Etapa para o método. Sobre o Depurar menu, escolha Step Into (teclado: F11).

Linha atual

Observe que o depurador se move para a próxima linha, que é uma chamada para o método Example1. Escolha Step Into novamente. O depurador se move para o ponto de entrada do método Example1. Isso indica que o método tenha sido carregado na pilha de chamadas e a memória para variáveis locais foram alocados.

Quando você entra em uma linha de código, o depurador executa uma das seguintes ações:

  • Se a próxima instrução não é uma chamada para uma função em sua solução, o depurador executa a instrução move para a próxima instrução e suspende a execução.

  • Se a instrução é uma chamada para uma função em sua solução, o depurador se move para o ponto de entrada da função chamada e suspende a execução.

Vá para a etapa em instruções exemplo1 até atingir o ponto de saída. O depurador realça a chave de fechamento do método.

Examinar valores de variáveis em dicas de dados. Quando você passa o mouse sobre um nome de variável, o nome, valor e tipo da variável é exibido em uma dica de dados.

Dica de dados do depurador

Passe o mouse sobre a variável a. Observe o tipo de dados, nome e valor. Passe o mouse sobre a variável methodTrack. Novamente, observe o tipo de dados, nome e valor.

Examinar valores de variáveis na janela locais. Sobre o Depurar aponte para Windows, e, em seguida, escolha locais. (Teclado: Alt + 4).

Janela Locais

Janela locais é uma exibição de árvore dos parâmetros e variáveis da função. As propriedades de uma variável de objeto são nós filho do próprio objeto. O this variável é um parâmetro oculto em todos os métodos do objeto que representa o próprio objeto. Nesse caso, ele representa a classe MainPage. Porque methodTrack é um membro do tipo de classe, seu valor e os dados da MainPage são listados em uma linha sob this. Expanda o this nó para exibir o methodTrack informações.

Adicionar uma inspeção para a variável methodTrack. O methodWatch variável é usada em todo este guia rápido para mostrar os métodos chamados nos exemplos. Para facilitar exibir o valor da variável, adicione-a uma janela de observação. O nome da variável na janela locais de atalho e escolha Adicionar inspeção.

Janela Inspecionar

Você pode assistir diversas variáveis em uma janela de inspeção. Os valores de variáveis observadas, como valores nas janelas de dica de dados e locais são atualizados sempre que a execução é suspensa. Você também pode adicionar variáveis à janela de inspeção do editor de códigos. Selecione a variável para assistir, com o botão direito e, em seguida, escolha Adicionar inspeção.

Para sobre e de métodos

Ao contrário de entrar em um método chamado por um método pai, entrar em um método executa o método filho e, em seguida, suspende a execução no método de chamada como o pai é retomada. Você pode entrar em um método, quando você estiver familiarizado com a maneira como o método funciona e tiver certeza de que sua execução não afetarão o problema que você está investigando.

Entrar em uma linha de código que não contém uma chamada de método executa a linha como entrar em linha.

Sair de um método filho continua a execução do método e suspende a execução depois que o método retorna para seu método de chamada. Você pode entrar fora de uma função muito quando você determinou que o resto da função não é significativo.

Depurando tanto sair de uma função de executar a função.

Para sobre e de métodos

Exemplo 2

Neste exemplo, você pode entrar em, em e de métodos.

Chamar o método Example2 no construtor MainPage. Edite o construtor MainPage e substitua a linha seguinte methodTrack = String.Empty; com Example2();.

Chame o método Example2 no método demonstração

Executar até o ponto de interrupção. Iniciar a sessão de depuração, escolhendo Iniciar depuração sobre o Depurar menu (teclado: F5). O depurador suspende a execução no ponto de interrupção.

Passar sobre a linha de código. Sobre o Depurar menu, escolha Step Over (teclado: F10). O depurador executa a methodTrack = "MainPage"; instrução da mesma maneira como examinarmos a instrução.

Intervir Example2 e Example2_A. Escolha a tecla F11 para passar para o método de exemplo 2. Continuar a depurar as instruções Example2 até chegar a linha int x = Example2_A();. Entrar novamente, essa linha para mover para o ponto de entrada de Example2_A. Vá para a etapa para cada instrução de Example2_A até voltar à Example2.

Exemplo 2

Etapa em uma função. Observe que a próxima linha Example2, int y = Example2_A(); é basicamente o mesmo da linha anterior. Com segurança, você poderá passar por essa linha. Escolha a tecla F10 para mover de continuação do exemplo 2 para a segunda chamada para Example2_A. Escolha F10 para passar por esse método. Observe que o methodTrack cadeia de caracteres que indica o método Example2_A foi executado duas vezes. Você também observará que o depurador imediatamente se move para a próxima linha. Ele não suspender a execução em retoma o ponto Example2.

Sair de uma função. Escolha a tecla F11 para entrar no método Example2_B. Observe que não é muito diferente de Example2_A Example2_B. Para sair do método, escolha Step Out sobre o Depurar menu (teclado: Shift + F11). Observe que o methodTrack variável indica que Example2_B foi executado e que o depurador voltou ao ponto onde Example2 continua.

Parar a depuração. No menu Debug, escolha Stop Debugging (teclado: Shift + F5). Isso encerra a sessão de depuração.

Definir pontos de interrupção condicionais, executar até o cursor e visualizar uma variável

Um ponto de interrupção condicional Especifica uma condição que faz com que o depurador suspender a execução. A condição é especificada por uma expressão de código que pode ser avaliada como true ou false. Por exemplo, você pode usar um ponto de interrupção condicional para examinar o estado do programa em um método chamado com freqüência somente quando uma variável atinge um determinado valor.

Executar até o cursor é como configurar um único ponto de interrupção. Quando a execução é suspensa, você pode selecionar uma linha na fonte de e retomar a execução até que a linha selecionada seja atingida. Por exemplo, você pode percorrer um loop em um método e determinar que o código no loop está sendo executado corretamente. Em vez de percorrer cada iteração do loop, você pode executar até o cursor é posicionado após o loop é executado.

Às vezes, é difícil de ler um valor de variável na linha da dica de dados ou janela variável. O depurador pode exibir cadeias de caracteres, HTML e Xml em um visualizador de texto que apresenta uma exibição formatada do valor em uma janela rolável.

Exemplo 3

Neste exemplo, você deve definir um ponto de interrupção condicional para dividir em uma iteração específica de um loop e executar até o cursor é posicionado após o loop. Você também pode exibir o valor de uma variável em um visualizador de texto.

Chamar o método de exemplo 3 no construtor MainPage. Edite o construtor MainPage e substitua a linha seguinte methodTrack = String.Empty; com a linha Example3();.

Exemplo 3 da chamada do método demonstração

Executar até o ponto de interrupção. Iniciar a sessão de depuração, escolhendo Iniciar depuração sobre o Depurar menu (teclado: F5). O depurador suspende a execução no ponto de interrupção no método MainPage.

Etapa para o método de exemplo 3. Escolha Step Into sobre o Depurar menu (teclado: F11) para mover para o ponto de entrada do método exemplo 3. Continuar a depuração para o método até que interagem um ou dois loops a for bloco. Observe que ele levaria muito tempo para percorrer todas as iterações de 1000.

Um ponto de interrupção condicional. Na medianiz esquerda da janela de código, clique na linha de x += i; e, em seguida, escolha condição. Escolha o condição caixa de seleção e digite i == 500; na caixa de texto. Escolha o é verdadeiro opção e escolha OK. O ponto de interrupção permite que você verifique o valor com a iteração 500th o for loop.

Caixa de diálogo condição de ponto de interrupção

Você pode identificar um ícone de ponto de interrupção condicional seu cruz branca.

Ponto de interrupção condicional

Executar até o ponto de interrupção. No menu Debug, escolha Continue (teclado: F5). Na janela locais, confirme se o valor atual de i é 500. Observe que a variável s é representado como uma linha e é muito maior que a janela.

Visual uma variável string. Clique no ícone de lupa no valor coluna o s.

A janela do Visualizador de texto é exibida e o valor da cadeia de caracteres é apresentado como uma cadeia de caracteres de várias linha.

Executar até o cursor. Clique a linha methodTrack += "->Example3"; e, em seguida, escolha Executar até o Cursor (teclado: mover o cursor para a linha; CTRL + F10). O depurador conclui as iterações do loop e suspende a execução na linha.

Parar a depuração. No menu Debug, escolha Stop Debugging (teclado: Shift + F5). Isso encerra a sessão de depuração.

Editar e continuar, recuperar de uma exceção

Em algumas circunstâncias, quando você entrar no código no depurador do Visual Studio, você tem a oportunidade de alterar o valor de variáveis e até mesmo a lógica de instruções. Essa funcionalidade é chamada de editar e continuar.

Editar e continuar pode ser especialmente útil quando você quebra em uma exceção. Em vez de precisar parar e reiniciar a depuração de um procedimento longo e envolvido para evitar a exceção, você pode "desenrolar" a exceção para mover a execução no ponto imediatamente antes da exceção e, em seguida, altere a variável incorreto ou a instrução e continuar com a sessão de depuração atual em estado que não lançará uma exceção.

Embora você possa usar Editar e continuar em uma ampla variedade de situações, as condições específicas que não suportam o editar e continuar são difíceis especificar como as condições dependem da linguagem de programação, o estado atual da pilha do programa e a capacidade do depurador para alterar o estado sem corromper o processo. É a melhor maneira de determinar se uma alteração de edição é suportada apenas experimentá-lo; o depurador permite saber imediatamente se a alteração não é suportada.

Exemplo 4

Neste exemplo, executar o depurador para uma exceção, retroceder a exceção, corrija a lógica do método e, em seguida, altere o valor de uma variável para que possa continuar a execução do método.

Chamar o método Exemplo4 no construtor MainPage. Edite o construtor MainPage() e substitua a linha seguinte methodTrack = String.Empty; com a linha Example4();.

Exemplo4 da chamada do método demonstração

Executar à exceção. Iniciar a sessão de depuração, escolhendo Iniciar depuração sobre o Depurar menu (teclado: F5). Pressione F5 novamente para continuar a execução. O depurador suspende a execução em que a exceção no método Exemplo4 e exibe uma caixa de diálogo de exceção.

Caixa de diálogo de exceção

Alterar a lógica do programa. É óbvio que o erro está no if condição: o valor de x deve ser alterada quando x for igual a 0; não quando x não é igual a zero. Escolha quebra para corrigir a lógica do método. Quando você tentar editar a linha, outra caixa de diálogo é exibida.

Caixa de diálogo Editar e Continuar

Escolha Editar e, em seguida, altere a linha if (x != 0) para if (x == 0). O depurador persiste alterações para a lógica do programa para o arquivo de origem.

Alterar o valor da variável. Examinar o valor de x em uma dica de dados ou na janela locais. Ainda é 0 (zero). Se você tentar executar a instrução que causou a exceção original, ela só irá acionar novamente. Você pode alterar o valor de x. Na janela locais, clique duas vezes o valor coluna o x linha. Altere o valor de 0 para 1.

Editar um valor na janela locais

Escolha a tecla F11 para passar para a instrução que anteriormente apresentou uma exceção. Observe que a linha seja executado sem erro. Escolha F11 novamente.

Parar a depuração. Sobre o Depurar menu, escolha parar depuração (teclado: Shift + F5). Isso encerra a sessão de depuração.

Consulte também

Conceitos

Iniciar uma sessão de depuração de um aplicativo da Store no Visual Studio (VB, C#, C++ e XAML)

Como disparar eventos de suspensão, retomada e segundo plano para aplicativos da Windows Store no Visual Studio

Depurar aplicativos da Store no Visual Studio