Iniciar, interromper, navegar e parar o depurador do Visual Studio
Neste tópico
Neste tópico
Iniciar depuração
Anexo em um processo
Iniciar automaticamente um aplicativo no depurador
Navegue no código em uma sessão de depuração
Entrar no código usando pontos de interrupção ou quebrar tudo
Entrar em, ou para fora do código
Execução para um local ou a uma função especificada
Defina a próxima instrução para executar
Restrict que vai apenas a meu código
Entrar em chamadas de sistema
Entrar em propriedades e de operadores em código gerenciado
Depuração stop
Iniciar depuração
Quando a solução é aberta é o Visual Studio, você tem três opções para iniciar depuração:
Escolha Depurar, Iniciar Depuração (teclado: F5). |
Seu aplicativo é iniciado e executam até então:
|
Escolha Depurar, Depuração Completa (teclado: F11) ou Depurar, Depuração Parcial (teclado: F10). |
Seus inicia e então quebras na primeira linha do aplicativo. |
Em uma janela de exibição source, selecione uma linha de código executável e escolha Executar até o Cursor no menu de contexto. |
Seu aplicativo é iniciado e executa até que atinge um ponto de interrupção ou o local do cursor, qualquer vem primeiro. |
Anexo em um processo
O depurador também pode anexar a um programa que está sendo executado em um processo fora do Visual Studio.Depois que você anexa um programa, você pode usar comandos de execução do depurador, inspecione o estado do programa, e assim por diante.Sua capacidade para inspecionar o programa pode ser limitada, dependendo se o programa esteve compilado com informações de depuração e se você tem acesso ao código-fonte do programa, e se o compilador de tempo de execução JIT comuns de linguagem está controlando informações de depuração.
Para anexar a um processo que está executando em seu computador local
Escolha Depurar, Anexar a Processo.Na caixa de diálogo de Anexar a Processo , selecione o processo da lista de Processos Disponíveis , e então escolha Anexar.
Consulte Anexar a processos em execução para maiores informações.
Iniciar automaticamente um aplicativo no depurador
Às vezes, você precisará depurar o código de inicialização para um aplicativo que é lançado por outro processo.Os exemplos incluem serviços e ações personalizadas de configuração.Nessas situações, você pode ter o lançamento do depurador e anexá-la automaticamente quando seu aplicativo é iniciado.
Inicie o Editor do Registro (regedit.exe).
Navegue até a pasta de HKEY_LOCAL_MACHINE \ software \ Microsoft \ Windows NT \ CurrentVersion \ opções execução do arquivo de imagem .
Selecione a pasta do aplicativo que você deseja iniciar o depurador.
Se o nome do aplicativo não estiver listado como uma pasta filho, Image File Execution Options selecione e clique em Novo, Chave no menu de atalho.Selecione a nova chave, escolha Renomear no menu de atalho, digite o nome do aplicativo.
No menu de atalho de pasta de aplicativo, escolha Novo, Valor da cadeia de caracteres.
Altere o nome do novo valor de New Value a depurador.
No menu de atalho de entrada do depurador, escolha Modificar.
Na caixa de diálogo cadeia de caracteres de edição, digite vsjitdebugger.exe na caixa de Dados do valor .
Neste tópico
Navegue no código em uma sessão de depuração
Entrar no código usando pontos de interrupção ou quebrar tudo
Quando você está depurando um aplicativo com o depurador do Visual Studio, seu aplicativo ou está executando executar () ou está no modo de interrupção.
O depurador interrompe a execução do aplicativo quando a execução atinge um ponto de interrupção ou quando ocorre uma exceção.Você também pode interromper a execução manualmente a qualquer momento.
Um ponto de interrupção é um sinal que instrui o depurador para temporariamente suspender a execução do seu aplicativo em algum ponto.Quando a execução é suspendida em um ponto de interrupção, seriam seu programa em modo de interrupção.Entre no modo de interrupção não para ou não termina a execução do programa; a execução pode ser continuada a qualquer momento.
A maioria dos recursos do depurador, como exibir os valores de variáveis locais na janela ou a avaliação de expressões na janela do relógio, estão disponíveis somente no modo de interrupção.Todos os elementos de seu aplicativo permanecem (as funções, variáveis, e objetos permanecem na memória, por exemplo), mas seus movimentos e as atividades são suspensas.Durante o modo de interrupção, você pode examinar as posições e os estados de elementos procurar violações ou bugs.Você também pode fazer ajustes ao aplicativo quando no modo de interrupção
Você pode configurar pontos de interrupção para suspender a execução com base em um número de condições.Consulte Usando pontos de interrupção e Tracepoints.Esta seção descreve duas maneiras básicas de entrar no código.
Definir pontos de interrupção no código
Para definir um ponto de interrupção simples em seu código, abra o arquivo de origem no editor do Visual Studio.Defina o cursor na linha de código em que você deseja quebrar, e clique em Ponto de Interrupção, Inserir Ponto de Interrupção no menu de contexto (teclado: F9.O depurador interrompe a execução right before a linha é executada.
Os pontos de interrupção no Visual Studio fornece um conjunto rico de funcionalidades adicionais, como pontos de interrupção e condicionais tracepoints.Consulte Usando pontos de interrupção e Tracepoints.
Quebre manualmente no código
Para quebrar na linha de código a seguir disponível em um aplicativo executando, escolha Depurar, Interromper Tudo (teclado: Ctrl+Alt+Break).
Se você está depurando com o forte de código my opção ativada, você interrompe na linha de código seguinte em seu projeto.Consulte Restrict stepping to Just My Code.
Se você está depurando vários programas, um ponto de interrupção ou quebra de linha de comando todas as afeta todos os programas que estão sendo depurado por padrão.Consulte Change the break behavior of multiple processes neste tópico.
Se você interrompe ao executar o código sem arquivos correspondentes de origem ou do símbolo () .pdf), o depurador exibe Arquivos de origem não encontrado ou uma página de Símbolos não encontrado que podem ajudá-lo a encontrar os arquivos adequados.Consulte Localizar símbolo (.pdb), origem e arquivos binários.
Se você não pode acessar arquivos de suporte, você ainda pode depurar as instruções de assembly na janela de desmontagem.
Entrar em, ou para fora do código
Um dos procedimentos de depuração mais comum é pisando.Depuração está executando a linha de código por vez.Quando você paralisou a execução, como executar o depurador para um ponto de interrupção, você pode usar três comandos de menu de Depurar percorrer o código:
Comando de menu |
Atalho de teclado |
Descrição |
---|---|---|
Step Into |
F11 |
Se a linha contém uma chamada de função, Depuração Completa executa somente a chamada próprio, então pára na primeira linha do código dentro da função.Caso contrário, Depuração Completa executa a próxima instrução. |
Step Over |
F10 |
Se a linha contém uma chamada de função, Depuração Parcial executa a função chamada, então pára na primeira linha do código dentro da função de chamada.Caso contrário, Depuração Completa executa a próxima instrução. |
Step Out |
Shift+F11 |
Depuração Circular retomar a execução do código até que a função retorna, então divide no ponto na função de retorno de chamada. |
Em uma chamada de função aninhada, etapas de Depuração Completa função em mais profundidade aninhada.Se você usar Depuração Completa em uma chamada como Func1(Func2()), o depurador avança na função Func2.
O depurador avança realmente com instruções do código em vez de físicos linhas.Por exemplo uma cláusula de if pode ser gravadas em uma linha:
int x = 42; string s = "Not answered"; if( int x == 42) s = "Answered!";
Dim x As Integet = 42 Dim s As String = "Not answered" If x = 42 Then s = "Answered!"
Quando você vai nesta linha, o depurador trata a condição como uma etapa e a outra resultado como (nesse exemplo, a condição for verdadeira.)
Execução para um local ou a uma função especificada
Às vezes você desejará executar a qualquer ponto no código, e a execução pára em.Se você tiver um ponto de interrupção definido no local onde você deseja quebrar, escolha Depurar, Iniciar Depuração se você não começou a depuração, ou, ou Depurar, Continuar.(Em ambos os casos F5 é a chave de atalho).O depurador para no ponto de interrupção no código a seguir.Escolha Depurar, Continuar até que você atingir o ponto de interrupção que você deseja.Consulte Set breakpoints in the code neste tópico.
Você também pode executar a onde você colocou o cursor no editor de códigos, ou execução para a função especificada.
Execução para o local do cursor
Para executar o local do cursor, coloque o cursor em uma linha de código executável em uma janela de origem.No menu de contexto de edição, escolha Executar até o Cursor.
Executar a uma função na pilha de chamadas
Na janela de Pilha de Chamadas , selecione a função, e escolha Executar até o Cursor no menu de contexto.
Executar a função especificada por nome
Você pode comando o depurador execute o aplicativo até que atinja uma função especificada.Você pode especificar a função por nome ou você pode escolha a pilha de chamadas.
Para especificar nome por uma função, escolha Depurar, Novo Ponto de Interrupção, Interromper na Funçãopara, digite o nome da função e outras informações de identificação.
Se a função estiver sobrecarregada ou está em vários namespace, você pode escolher as funções que você deseja na caixa de diálogo de Escolher Pontos de Interrupção .
Defina a próxima instrução para executar
Depois de quebra no depurador, você pode mover o ponto de execução para definir a próxima declaração de código a ser executado.Uma seta amarela em uma margem de origem ou de uma janela de desmontagem marca o local da próxima instrução a ser executada.Movendo essa seta, você pode ignorar uma parte do código ou retornar a uma linha executada anteriormente.Você pode usar este para situações tais como o salto de uma seção de código que contém um bug conhecido.
Para definir a próxima instrução para executar, use um destes procedimentos:
Em uma janela de origem, arraste a seta amarela em uma localidade onde você deseja definir a seguinte declaração no mesmo arquivo de origem
Em uma janela de origem, defina o cursor na linha que você deseja executar em seguida e escolha Definir Próxima Declaração no menu de contexto.
Na janela de desmontagem, defina o cursor na instrução de assembly que você deseja executar em seguida e escolha Definir Próxima Declaração no menu de contexto.
Cuidado |
---|
Defina a instrução a seguir faz com que o programa diferentemente de ir diretamente para o novo local.Use este comando com cuidado:
|
Observação |
---|
No código gerenciado, você não pode mover a declaração a seguir nas seguintes circunstâncias:
|
Você não pode definir a próxima instrução quando seu aplicativo é executado ativamente.Para definir a instrução a seguir, o depurador deve estiver no modo de interrupção.
Restrict que vai apenas a meu código
Às vezes, quando você depura, você pode querer examinar somente o código que você escreveu e ignorar outro código, como chamadas do sistema.Você pode fazer isso com apenas my depuração de código.Meu não apenas código do usuário de oculta de código para que ele não aparece em janelas de depuração.Quando você vai, as etapas do depurador com nenhum código do usuário não mas não param nele.
Para ativar ou desativar apenas my depuração de código, escolha Depurar, Opções e Configurações.Em Depurando, a página de Geral , verifica ou desmarca Habilitar Apenas Meu Código.
Para distinguir o código do usuário do código do usuário, não apenas meu código parece arquivos do símbolo (PDB) e otimizações de programa.
Em uma construção de depuração padrão, a otimização é desativada e símbolos de depuração são criados para todos os módulos.Quando você executa uma construção de depuração, esses módulos são consideradas código do usuário.Mas uma função da biblioteca que é otimizada e não têm símbolos de depuração não é considerado código do usuário.Meu apenas código impede a execução pára em pontos de interrupção no código de biblioteca, que não é geralmente código que você está interessado na depuração.Na janela de pontos de interrupção, esses pontos de interrupção aparecerá com o ícone desativado de ponto de interrupção.
Consulte para qualquer código e que ele pare em todos os pontos de interrupção, você pode desativar apenas my depuração de código usando a caixa de diálogo de Opções .
Três atributos também influencia o que o depurador considera ser meu código: DebuggerNonUserCodeAttribute informa o depurador que o código que é aplicado a não é my código.DebuggerHiddenAttribute oculta o código do depurador, mesmo se apenas meu código está desativado.DebuggerStepThroughAttribute informa o depurador para percorrer o código que é aplicado, em vez da etapa no código.
Quando apenas meu código é ativado, você pode escolher Interromper Tudo no menu de Depurar e interromper a execução em um local onde não há nenhum meu código para exibir.Quando isso acontece, nenhum código é exibido.Além disso, se você escolher um comando de Etapa , ela levará você para a próxima linha de código meu.
As instruções programação de interrupção, como instruções do Visual Basic Stop , são manipuladas de forma diferente.O depurador interrompe sempre nessas instruções, mesmo quando apenas meu código é ativado.Nesta situação, o código do usuário não é exibido em vez de oculto, mas ainda levará você entrar fora do código do usuário não para a próxima linha de código meu.
Observação |
---|
Meu apenas código não há suporte para projetos de dispositivo. |
Entrar em chamadas de sistema
Se você carregou símbolos de depuração para o código do sistema e apenas meu código não está ativado, você pode entrar em uma chamada do sistema exatamente como você pode qualquer outra chamada.
Para saber como desativar apenas meu código, consulte Restrict stepping to Just My Code
Para acessar arquivos de símbolo da Microsoft, consulte Usando Windows e outros símbolos da Microsoft no tópico de Localizar símbolo (.pdb), origem e arquivos binários .
Para carregar símbolos para um componente do sistema específico quando você depura:
Abra a janela de módulos (teclado: Ctrl+Alt+U).
Selecione o módulo que você deseja carregar símbolos para.
Você pode determinar quais módulos têm símbolos carregados olhando para a coluna de Status do Símbolo .
Escolha Carregar Símbolos no menu de contexto.
Entrar em propriedades e de operadores em código gerenciado
O depurador avança sobre propriedades e operadores em código gerenciado por padrão.Na maioria dos casos, isso fornece uma melhor experiência de depuração.Para ativar avançar em propriedades ou de operadores, escolha Depurar, Opções e Configurações.Em Depurando, a página de Geral , desmarque a caixa de seleção de Depurar parcialmente propriedades e operadores (Somente gerenciado)
Neste tópico
Depuração stop
Parando meios para depuração de finalizar a sessão de depuração.Parando mídia de execução para encerrar o processo você está depurando e de fim a sessão de depuração.Não deve ser confundido com interromper a execução pára, que temporariamente a execução do processo que você está depurando mas as folhas a sessão de depuração ativo.Desanexar de um processo para depuração do processo mas as folhas ele executa.
Pare a depuração do Visual Studio
Escolha Depurar, Parar Depuração.
Parar Depuração finaliza o processo que você está depurando se o programa foi iniciado Visual Studio.Se você tiver anexado ao processo em vez de inicialização do Visual Studio, o processo continua a executar.
Depuração e reinicie stop
Escolha Depurar, Reiniciar para parar a sessão atual de depuração e para reiniciar o projeto de inicialização no depurador.
Feche o aplicativo que está sendo depurado
Quando você sai de um aplicativo que está sendo depurado, depuração para automaticamente.