Tutorial: aprenda a depurar código do Visual Basic usando o Visual Studio

Este artigo apresenta os recursos do depurador do Visual Studio passo a passo. Caso deseje obter uma exibição de nível superior das funcionalidades do depurador, confira Introdução ao depurador. Quando você depura seu aplicativo, isso normalmente significa executar o aplicativo com o depurador anexado. Quando você faz isso, o depurador fornece várias maneiras de mostrar o que o código está fazendo enquanto é executado. Você pode percorrer o código e examinar os valores armazenados em variáveis, definir inspeções em variáveis para ver quando os valores mudam, examinar o caminho de execução do código, ver se um branch de código está em execução e assim por diante. Se esta for sua primeira tentativa de depurar um código, leia Como depurar para iniciantes absolutos antes continuar neste artigo.

embora o aplicativo de demonstração seja Visual Basic, a maioria dos recursos é aplicável a C#, C++, F #, Python, JavaScript e outras linguagens compatíveis com o Visual Studio (f # não dá suporte a editar e continuar. F# e JavaScript não dão suporte à janela Autos). As capturas de tela estão em Visual Basic.

Neste tutorial, você irá:

  • Iniciar o depurador e atingir os pontos de interrupção.
  • Aprender os comandos para percorrer o código no depurador
  • Inspecionar variáveis em dicas de dados e janelas do depurador
  • Examinar a pilha de chamadas

Pré-requisitos

você deve ter o Visual Studio 2019 instalado e a carga de trabalho de desenvolvimento de plataforma cruzada do .net Core .

você deve ter o Visual Studio 2017 instalado e a carga de trabalho de desenvolvimento de plataforma cruzada do .net Core .

se você ainda não instalou o Visual Studio, vá para a página de downloads do Visual Studio para instalá-lo gratuitamente.

se você ainda não instalou o Visual Studio, vá para a página de downloads do Visual Studio para instalá-lo gratuitamente.

se você precisar instalar a carga de trabalho, mas já tiver Visual Studio, vá para ferramentas > obter ferramentas e recursos..., que abre o Instalador do Visual Studio. O Instalador do Visual Studio é iniciado. Escolha a carga de trabalho de desenvolvimento de plataforma cruzada do .NET Core e, em seguida, escolha Modificar.

se você ainda não instalou o Visual Studio, vá para a página de downloads do Visual Studio para instalá-lo gratuitamente.

se você precisar instalar a carga de trabalho, mas já tiver Visual Studio, vá para ferramentas > obter ferramentas e recursos..., que abre o Instalador do Visual Studio. O Instalador do Visual Studio é iniciado. Escolha a carga de trabalho Desenvolvimento de área de trabalho do .NET e, em seguida, selecione Modificar.

Criar um projeto

Primeiro, você criará um projeto de aplicativo de console do .NET Core. O tipo de projeto inclui todos os arquivos de modelo que você precisará, mesmo sem adicionar nada!

  1. Abra o Visual Studio 2017.

  2. na barra de menus superior, escolha arquivo > novo > Project.

  3. Na caixa de diálogo Novo Projeto, no painel esquerdo, expanda Visual Basic e, em seguida, escolha .NET Core. No painel central, escolha Aplicativo de Console (.NET Core). Em seguida, nomeie o projeto de introdução à depuração.

    Se você não vir o modelo de projeto do Aplicativo de Console (.NET Core), escolha o link Abrir Instalador do Visual Studio no painel esquerdo da caixa de diálogo Novo Projeto.

    O Instalador do Visual Studio é iniciado. Escolha a carga de trabalho Desenvolvimento multiplaforma do .NET Core e, em seguida, selecione Modificar.

  1. Abra o Visual Studio.

    Se a janela iniciar não estiver aberta, escolha arquivo > Iniciar janela.

  2. Na janela iniciar, escolha criar um novo projeto.

  3. Na janela criar um novo projeto , digite ou digite console na caixa de pesquisa. Em seguida, escolha Visual Basic na lista Linguagem de programação e, em seguida, escolha Windows na lista Plataforma.

    Depois de aplicar os filtros de idioma e plataforma, escolha o modelo de aplicativo de console para .NET Core e, em seguida, escolha Avançar.

    captura de tela mostrando a janela criar um novo projeto com ' console ' na caixa de pesquisa e ' Visual Basic ' e ' Windows ' selecionados para os filtros de linguagem e plataforma. O modelo de projeto de aplicativo de console é selecionado.

    Observação

    Se você não vir o modelo de aplicativo de console , poderá instalá-lo na janela criar um novo projeto . Na mensagem Não encontrou o que precisa?, escolha o link Instalar mais ferramentas e recursos. Em seguida, no Instalador do Visual Studio, escolha a carga de trabalho de desenvolvimento multiplataforma do .NET Core.

  4. na janela configurar seu novo projeto , digite ou digite get-started-debugging na caixa nome do Project . Em seguida, escolha Avançar.

  5. Escolha a estrutura de destino recomendada (.NET Core 3,1) ou .NET 5 e, em seguida, escolha criar.

    O Visual Studio abre seu novo projeto.

  1. Abra o Visual Studio.

    Se a janela iniciar não estiver aberta, escolha arquivo > Iniciar janela.

  2. Na janela iniciar, escolha criar um novo projeto.

  3. Na janela criar um novo projeto , digite ou digite console na caixa de pesquisa. Em seguida, escolha Visual Basic na lista Linguagem de programação e, em seguida, escolha Windows na lista Plataforma.

    Depois de aplicar os filtros de idioma e plataforma, escolha o modelo de aplicativo de console para .NET Core e, em seguida, escolha Avançar.

    captura de tela mostrando a janela criar um novo projeto com ' console ' na caixa de pesquisa e ' Visual Basic ' e ' Windows ' selecionados para os filtros de linguagem e plataforma. O modelo de projeto de aplicativo de console é selecionado.

    Observação

    Se você não vir o modelo de aplicativo de console , poderá instalá-lo na janela criar um novo projeto . Na mensagem Não encontrou o que precisa?, escolha o link Instalar mais ferramentas e recursos. em seguida, na Instalador do Visual Studio, escolha a carga de trabalho de desenvolvimento do .net desktop .

  4. na janela configurar seu novo projeto , digite ou digite get-started-debugging na caixa nome do Project . Em seguida, escolha Avançar.

  5. Na janela informações adicionais , verifique se a estrutura de destino recomendada é (.net 6,0) e, em seguida, escolha criar.

    O Visual Studio abre seu novo projeto.

Criar o aplicativo

  1. Em Program. vb, substitua todo o código padrão pelo código a seguir, em vez disso:

    Imports System
    
    Class ArrayExample
        Public Shared Sub Main()
            Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
            Dim name As String = ""
            Dim a As Integer() = New Integer(9) {}
    
            For i As Integer = 0 To letters.Length - 1
                name += letters(i)
                a(i) = i + 1
                SendMessage(name, a(i))
            Next
    
            Console.ReadKey()
        End Sub
    
        Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
            Console.WriteLine("Hello, " & name & "! Count to " & msg)
        End Sub
    End Class
    

Inicie o depurador.

  1. Pressione F5 (debug > iniciar depuração) ou o botão Iniciar Depuração na barra de ferramentas Depurar.

    F5 inicia o aplicativo com o depurador anexado ao processo do aplicativo, mas nós ainda não fizemos nada de especial para examinar o código. Portanto, o aplicativo apenas é carregado e a saída do console é exibida.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    Neste tutorial, vamos analisar melhor esse aplicativo usando o depurador e analisar os recursos do depurador.

  2. Pare o depurador pressionando o botão de parada vermelha (Shift + F5).

  3. Na janela do console, pressione uma tecla para fechar a janela do console.

  1. Pressione F5 (debug > iniciar depuração) ou selecione o botão verde Iniciar Depuração na barra de ferramentas Depurar.

    Captura de tela mostrando a barra de ferramentas de depuração com o botão verde ' Iniciar Depuração ' realçado.

    F5 inicia o aplicativo com o depurador anexado ao processo do aplicativo, mas nós ainda não fizemos nada de especial para examinar o código. Portanto, o aplicativo apenas é carregado e a saída do console é exibida.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    Neste tutorial, vamos analisar melhor esse aplicativo usando o depurador e analisar os recursos do depurador.

  2. Pare o depurador pressionando (Shift + F5) ou selecione o botão vermelho parar depuração na barra de ferramentas Depurar.

    Captura de tela mostrando a barra de ferramentas de depuração com o botão vermelho "parar depuração" realçado.

  3. Na janela do console, pressione uma tecla para fechar a janela do console.

Definir um ponto de interrupção e iniciar o depurador

  1. No loop For da função Main, defina um ponto de interrupção clicando na margem esquerda da seguinte linha de código:

    name += letters(i)

    Um círculo vermelho aparece onde você define o ponto de interrupção.

    Os pontos de interrupção são um dos recursos mais básicos e essenciais da depuração confiável. Um ponto de interrupção indica quando o Visual Studio deve suspender o código em execução para que você possa examinar os valores das variáveis ou o comportamento de memória ou se uma ramificação de código está sendo executada ou não.

  2. Pressione F5 ou o botão Iniciar Depuração , o aplicativo é iniciado e o depurador é executado na linha de código em que você define o ponto de interrupção.

    captura de tela mostrando a janela do editor de código Visual Studio com a execução interrompida em um ponto de interrupção.

    A seta amarela representa a instrução na qual o depurador ficou em pausa, que também suspende a execução do aplicativo no mesmo ponto (essa instrução ainda não foi executada).

    Se o aplicativo ainda não estiver em execução, F5 iniciará o depurador e o interromperá no primeiro ponto de interrupção. Caso contrário, F5 continuará executando o aplicativo até o próximo ponto de interrupção.

    Os pontos de interrupção são um recurso útil quando você sabe qual linha ou seção de código deseja examinar em detalhes. Para obter informações sobre os diferentes tipos de pontos de interrupção que você pode definir, como pontos de interrupção condicionais, consulte usando pontos de interrupção.

  1. No loop For da função Main, defina um ponto de interrupção clicando na margem esquerda da seguinte linha de código:

    name += letters(i)

    Aparece um círculo vermelho no qual você definiu o ponto de interrupção.

    Os pontos de interrupção são um dos recursos mais básicos e essenciais da depuração confiável. Um ponto de interrupção indica quando o Visual Studio deve suspender o código em execução para que você possa examinar os valores das variáveis ou o comportamento de memória ou se uma ramificação de código está sendo executada ou não.

  2. Pressione F5 (debug > iniciar depuração) ou o botão Iniciar Depuração na barra de ferramentas de depuração, o aplicativo é iniciado e o depurador é executado na linha de código em que você define o ponto de interrupção.

    captura de tela mostrando a janela do editor de código Visual Studio com a execução interrompida em um ponto de interrupção.

    A seta amarela representa a instrução na qual o depurador ficou em pausa, que também suspende a execução do aplicativo no mesmo ponto (essa instrução ainda não foi executada).

    Se o aplicativo ainda não estiver em execução, F5 iniciará o depurador e o interromperá no primeiro ponto de interrupção. Caso contrário, F5 continuará executando o aplicativo até o próximo ponto de interrupção.

    Os pontos de interrupção são um recurso útil quando você sabe qual linha ou seção de código deseja examinar em detalhes. Para obter informações sobre os diferentes tipos de pontos de interrupção que você pode definir, como pontos de interrupção condicionais, consulte usando pontos de interrupção.

Geralmente, usamos atalhos de teclado aqui porque essa é uma boa maneira de executar o aplicativo rapidamente no depurador (os comandos equivalentes, como os comandos de menu, são mostrados entre parênteses).

  1. Enquanto estiver em pausa no For loop no Main método, pressione F11 (ou escolha debug > Step Into) duas vezes para avançar para a SendMessage chamada de método.

    Depois de pressionar F11 duas vezes, você deve estar nesta linha de código:

    SendMessage(name, a(i))

  2. Pressione F11 mais uma vez para entrar no SendMessage método.

    O ponteiro amarelo avança para o SendMessage método.

    captura de tela mostrando uma sessão de depuração no editor de código Visual Studio com a execução pausada após a depuração no método ' SendMessage '.

    F11 é o comando Intervir, que avança a execução do aplicativo uma instrução por vez. F11 é uma boa maneira de examinar o fluxo de execução com o máximo de detalhes. (Para mover-se mais rapidamente pelo código, mostraremos algumas outras opções também.) Por padrão, o depurador ignora o código que não é do usuário (se você quiser obter mais detalhes, consulte apenas meu código).

    Digamos que você concluiu a análise do SendMessage método e deseja sair do método, mas permanecerá no depurador. Você pode fazer isso usando o comando Depuração Circular.

  3. Pressione Shift + F11 (ou debug > Step Out).

    Esse comando retoma a execução do aplicativo (e avança o depurador) até que o método ou a função atual retorne.

    Você deve estar de volta no For loop no Main método, em pausa na chamada do SendMessage método.

  4. Pressione F11 várias vezes até voltar para a chamada do SendMessage método novamente.

  5. Enquanto estiver em pausa na chamada do método, pressione F10 (ou escolha depurar > etapas) uma vez.

    captura de tela mostrando uma sessão de depuração no editor de código Visual Studio com a execução pausada após a depuração da chamada do método ' SendMessage '.

    Observe que, desta vez, o depurador não Percorra o SendMessage método. F10 avança o depurador sem intervir em funções ou métodos no código do aplicativo (o código ainda é executado). Pressionando F10 na chamada do método SendMessage (em vez de F11), ignoramos o código de implementação de SendMessage (que, no momento, talvez não seja de nosso interesse). Para obter mais informações sobre diferentes maneiras de se mover pelo seu código, consulte navegar no código no depurador.

Neste artigo, usamos os atalhos de teclado, porque é uma boa maneira de ser rápido na execução de seu aplicativo no depurador (comandos equivalentes, como comandos de menu, são mostrados entre parênteses).

  1. Enquanto estiver em pausa no For loop no Main método, pressione F11 (ou escolha debug > Step Into) duas vezes para avançar para a SendMessage chamada de método.

    Depois de pressionar F11 duas vezes, você deve estar nesta linha de código:

    SendMessage(name, a(i))

  2. Pressione F11 mais uma vez para entrar no SendMessage método.

    O ponteiro amarelo avança para o SendMessage método.

    captura de tela mostrando uma sessão de depuração no editor de código Visual Studio com a execução pausada após a depuração no método ' SendMessage '.

    F11 é o comando Step Into e avança a execução do aplicativo uma instrução por vez. F11 é uma boa maneira de examinar o fluxo de execução na maioria dos detalhes. (Para mover-se mais rapidamente pelo código, mostraremos algumas outras opções também.) Por padrão, o depurador ignora o código que não é do usuário (se você quiser obter mais detalhes, consulte apenas meu código).

    Digamos que você concluiu a análise do SendMessage método e deseja sair do método, mas permanecerá no depurador. Você pode fazer isso usando o comando Depuração Circular.

  3. Pressione Shift + F11 (ou debug > Step Out).

    Esse comando retoma a execução do aplicativo (e avança o depurador) até que o método ou a função atual retorne.

    Você deve estar de volta no For loop no Main método, em pausa na chamada do SendMessage método.

  4. Pressione F11 várias vezes até voltar para a chamada do SendMessage método novamente.

  5. Enquanto estiver em pausa na chamada do método, pressione F10 (ou escolha depurar > etapas) uma vez.

    captura de tela mostrando uma sessão de depuração no editor de código Visual Studio com a execução pausada após a depuração da chamada do método ' SendMessage '.

    Observe que, desta vez, o depurador não Percorra o SendMessage método. F10 avança o depurador sem intervir em funções ou métodos no código do aplicativo (o código ainda é executado). Pressionando F10 na chamada do método SendMessage (em vez de F11), ignoramos o código de implementação de SendMessage (que, no momento, talvez não seja de nosso interesse). Para obter mais informações sobre diferentes maneiras de se mover pelo seu código, consulte navegar no código no depurador.

  1. Pressione F5 para avançar para o ponto de interrupção novamente.

  2. No editor de código, role para baixo e passe o mouse sobre o Console.WriteLine método no SendMessage método até que o botão verde Executar para clicar apareça à esquerda. A dica de ferramenta para o botão mostra "Realizar a execução até aqui".

    Captura de tela mostrando o botão Executar para clicar com a dica de ferramenta realçada no lado esquerdo da janela do editor de código.

    Observação

    O botão Executar até o Clique é novo no Visual Studio 2017. (Se você não vir o botão de seta verde, use F11 neste exemplo em vez de avançar o depurador para o lugar certo.)

  3. Clique no botão Executar para clicar .

    O depurador avança para o Console.WriteLine método.

    O uso desse botão é semelhante à configuração de um ponto de interrupção temporário. Executar até o Clique é útil para abranger rapidamente uma região visível do código do aplicativo (você pode clicar em qualquer arquivo aberto).

  1. Pressione F5 para avançar para o ponto de interrupção novamente.

  2. No editor de código, role para baixo e passe o mouse sobre o Console.WriteLine método no SendMessage método até que o botão verde Executar para clicar apareça à esquerda. A dica de ferramenta para o botão mostra "Realizar a execução até aqui".

    Captura de tela mostrando o botão Executar para clicar com a dica de ferramenta realçada no lado esquerdo da janela do editor de código.

  3. Selecione o botão Executar para clicar .

    O depurador avança para o Console.WriteLine método.

    O uso desse botão é semelhante à configuração de um ponto de interrupção temporário. Executar até o Clique é útil para abranger rapidamente uma região visível do código do aplicativo (você pode clicar em qualquer arquivo aberto).

Reinicie o aplicativo rapidamente

Clique no botão reiniciar na barra de ferramentas depurar (Ctrl + Shift + F5).

Ao pressionar Reiniciar, você economiza tempo em comparação com a opção de parar o aplicativo e reiniciar o depurador. O depurador é pausado no primeiro ponto de interrupção que é atingido pela execução do código.

O depurador para novamente no ponto de interrupção que você definiu anteriormente dentro do For loop.

Para reiniciar o aplicativo, pressione a combinação de teclas Ctrl + Shift + F5 , ele economiza tempo em comparação com a interrupção do aplicativo e a reinicialização do depurador. O depurador é pausado no primeiro ponto de interrupção que é atingido pela execução do código.

O depurador para novamente no ponto de interrupção que você definiu anteriormente dentro do For loop.

Inspecionar variáveis com dicas de dados

Os recursos que permitem que você inspecione variáveis são uns dos mais úteis do depurador e há diferentes maneiras de fazer isso. Muitas vezes, ao tentar depurar um problema, você tenta descobrir se as variáveis estão armazenando os valores que elas deveriam conter em um momento específico.

  1. Enquanto estiver em pausa na name += letters[i] instrução, focalize a letters variável e você verá seu valor padrão, o valor do primeiro elemento na matriz, "f"c .

  2. Em seguida, passe o mouse sobre a name variável e você verá seu valor atual, uma cadeia de caracteres vazia.

  3. Pressione F5 (ou debug > continue) algumas vezes para iterar várias vezes pelo For loop, pausando novamente no ponto de interrupção e passando o mouse sobre a name variável a cada vez para verificar seu valor.

    Captura de tela mostrando a execução de depuração parada no editor de código com a variável ' name ' realçada e uma dica de dados que mostra o valor como ' fre '.

    O valor da variável é alterado com cada iteração do For loop, mostrando valores de f , então, fr fre e assim por diante.

    Muitas vezes, durante a depuração, você deseja uma maneira rápida de verificar valores de propriedade em variáveis, para ver se eles estão armazenando os valores que você espera que armazenem. As dicas de dados são uma boa maneira de fazer isso.

Os recursos que permitem que você inspecione variáveis são uns dos mais úteis do depurador e há diferentes maneiras de fazer isso. Muitas vezes, ao tentar depurar um problema, você tenta descobrir se as variáveis estão armazenando os valores que elas deveriam conter em um momento específico.

  1. Enquanto estiver em pausa na name += letters[i] instrução, focalize a letters variável e você verá seu valor padrão, o valor do primeiro elemento na matriz, "f"c .

  2. Em seguida, passe o mouse sobre a name variável e você verá seu valor atual, uma cadeia de caracteres vazia.

  3. Pressione F5 (ou debug > continue) algumas vezes para iterar várias vezes pelo For loop, pausando novamente no ponto de interrupção e passando o mouse sobre a name variável a cada vez para verificar seu valor.

    Captura de tela mostrando a execução de depuração parada no editor de código com a variável ' name ' realçada e uma dica de dados que mostra o valor como ' fre '.

    O valor da variável é alterado com cada iteração do For loop, mostrando valores de f , então, fr fre e assim por diante.

    Muitas vezes, durante a depuração, você deseja uma maneira rápida de verificar valores de propriedade em variáveis, para ver se eles estão armazenando os valores que você espera que armazenem. As dicas de dados são uma boa maneira de fazer isso.

Inspecionar variáveis com as janelas Autos e Locais

  1. Examine a janela Autos na parte inferior do editor de códigos.

    se ele estiver fechado, abra-o enquanto estiver em pausa no depurador escolhendo depurar > Windows > automáticos.

    Na janela Autos, veja as variáveis e seus valores atuais. A janela Autos mostra todas as variáveis usadas na linha atual ou a linha anterior (verifique a documentação para saber o comportamento específico a uma linguagem).

  2. Em seguida, examine a janela Locais, em uma guia ao lado da janela Autos.

  3. Expanda letters a variável para mostrar os elementos que ela contém.

    Captura de tela mostrando a Janela Locais com a variável 'letras' expandida para mostrar o valor e o tipo dos elementos que ela contém.

    A janela Locais mostra as variáveis que estão no escopo atual, ou seja, o contexto de execução atual.

  1. Examine a janela Autos na parte inferior do editor de códigos.

    Se estiver fechado, abra-o enquanto estiver em pausa no depurador escolhendo Depurar > Windows > Autos.

    Na janela Autos, veja as variáveis e seus valores atuais. A janela Autos mostra todas as variáveis usadas na linha atual ou a linha anterior (verifique a documentação para saber o comportamento específico a uma linguagem).

  2. Em seguida, examine a janela Locais, em uma guia ao lado da janela Autos.

  3. Expanda letters a variável para mostrar os elementos que ela contém.

    Captura de tela mostrando a Janela Locais com a variável 'letras' expandida para mostrar o valor e o tipo dos elementos que ela contém.

    A janela Locais mostra as variáveis que estão no escopo atual, ou seja, o contexto de execução atual.

Definir uma inspeção

  1. Na janela do editor de código principal, clique com o botão direito do mouse na name variável e escolha Adicionar Relógio.

    A janela Inspeção é aberta na parte inferior do editor de códigos. Você pode usar uma janela Inspeção para especificar uma variável (ou uma expressão) que deseja acompanhar.

    Agora, você tem um relógio definido na variável e pode ver seu valor mudar conforme você passa name pelo depurador. Ao contrário das outras janelas de variáveis, a janela Inspeção sempre mostra as variáveis que você está inspecionando (eles ficam esmaecidas quando estão fora do escopo).

Examinar a pilha de chamadas

  1. Durante a pausa no loop For, clique na janela Pilha de Chamadas que fica aberta por padrão no painel inferior direito.

    Se estiver fechado, abra-o enquanto estiver em pausa no depurador escolhendo Depurar Windows > > Pilha de Chamada.

  2. Clique em F11 algumas vezes até ver a pausa do depurador no SendMessage método . Examine a janela Pilha de Chamadas.

    Captura de tela mostrando a Visual Studio pilha de chamada com uma chamada de método SendMessage realçada na linha superior.

    A janela Pilha de Chamadas mostra a ordem em que os métodos e as funções são chamados. A linha superior mostra a função atual (o método SendMessage neste aplicativo). A segunda linha mostra que SendMessage foi chamado por meio do método Main e assim por diante.

    Observação

    A janela Pilha de Chamadas é semelhante à perspectiva de Depuração em alguns IDEs, como o Eclipse.

    A pilha de chamadas é uma boa maneira de examinar e entender o fluxo de execução de um aplicativo.

    Você pode clicar duas vezes em uma linha de código para examinar esse código-fonte. Isso também altera o escopo atual que está sendo inspecionado pelo depurador. Essa ação não avança o depurador.

    Você também pode usar os menus acessados ao clicar com o botão direito do mouse na janela Pilha de Chamadas para fazer outras coisas. Por exemplo, você pode inserir pontos de interrupção em funções especificadas, avançar o depurador usando Executar até o Cursor e examinar o código-fonte. Para obter mais informações, confira Como examinar a pilha de chamadas.

  1. Enquanto estiver em pausa no loop, clique na janela Pilha de Chamada, que é aberta For por padrão no painel inferior direito.

    Se estiver fechado, abra-o enquanto estiver em pausa no depurador escolhendo Depurar Windows > > Pilha de Chamada.

  2. Clique em F11 algumas vezes até ver a pausa do depurador no SendMessage método . Examine a janela Pilha de Chamadas.

    Captura de tela mostrando a Visual Studio pilha de chamada com uma chamada de método SendMessage realçada na linha superior.

    A janela Pilha de Chamadas mostra a ordem em que os métodos e as funções são chamados. A linha superior mostra a função atual (o método SendMessage neste aplicativo). A segunda linha mostra que SendMessage foi chamado por meio do método Main e assim por diante.

    Observação

    A janela Pilha de Chamadas é semelhante à perspectiva de Depuração em alguns IDEs, como o Eclipse.

    A pilha de chamadas é uma boa maneira de examinar e entender o fluxo de execução de um aplicativo.

    Você pode clicar duas vezes em uma linha de código para examinar esse código-fonte. Isso também altera o escopo atual que está sendo inspecionado pelo depurador. Essa ação não avança o depurador.

    Você também pode usar os menus acessados ao clicar com o botão direito do mouse na janela Pilha de Chamadas para fazer outras coisas. Por exemplo, você pode inserir pontos de interrupção em funções especificadas, avançar o depurador usando Executar até o Cursor e examinar o código-fonte. Para obter mais informações, confira Como examinar a pilha de chamadas.

Alterar o fluxo de execução

  1. Pressione F11 duas vezes para executar o Console.WriteLine método .

  2. Com o depurador em pausa na chamada de método, use o mouse para segurar a seta amarela (o ponteiro de execução) à esquerda e movê-lo para cima uma linha, de volta SendMessage para Console.WriteLine .

  3. Pressione F11.

    O depurador executa novamente o método Console.WriteLine (você vê isso na saída da janela do console).

    Alterando o fluxo de execução, você pode fazer coisas como testar caminhos de execução de código diferentes ou executar novamente o código sem reiniciar o depurador.

    Aviso

    Geralmente, você precisa ter cuidado com esse recurso. Um aviso é exibido na dica de ferramenta. Outros avisos também podem ser exibidos. Ao mover o ponteiro não é possível reverter o aplicativo para um estado anterior.

  4. Pressione F5 para continuar a execução do aplicativo.

    Parabéns por concluir este tutorial.

Próximas etapas

Neste tutorial, você aprendeu como iniciar o depurador, percorrer o código e inspecionar variáveis. Talvez você queira obter uma visão geral dos recursos do depurador, com links para mais informações.