Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Depuração Just-In-Time pode iniciar o Visual Studio automaticamente quando um aplicativo em execução fora do Visual Studio apresenta erros ou falha. Com a depuração Just-In-Time, você pode testar aplicativos fora do Visual Studio e abrir o Visual Studio para começar a depuração quando ocorrer um problema.
A Depuração Just-In-Time funciona para aplicativos da área de trabalho do Windows. Ele não funciona para Aplicativos Universais do Windows ou para código gerenciado hospedado em um aplicativo nativo, como Visualizadores.
Dica
Se você quiser apenas impedir que a caixa de diálogo do Depurador Just-In-Time apareça, mas não tiver o Visual Studio instalado, consulte Desabilitar o Depurador Just-In-Time. Se você já tenha instalado o Visual Studio, talvez seja necessário desabilitar a depuração Just-in-Time do Registro do Windows.
Habilitar ou desabilitar a depuração Just-In-Time no Visual Studio
Quando você trabalha com o depurador Just-In-Time no Visual Studio, as opções de configuração para o depurador são acessíveis nos menus Ferramentas>Opções ou Depuração>Opções. O depurador Just-In-Time está disponível na seçãoDepuração e teste de > individuais do instalador.
Observação
Para habilitar ou desabilitar a depuração Just-In-Time, você deve estar rodando o Visual Studio como um administrador. Habilitar ou desabilitar a depuração Just-In-Time define uma chave no Sistema de Registro e pode requerer privilégios de administrador para alterar a chave. Para abrir o Visual Studio como administrador, clique com o botão direito do mouse no aplicativo do Visual Studio e escolha Executar como administrador.
Para habilitar ou desabilitar a depuração Just-in-Time:
No painel Ferramentas>Opções, expanda a seção Todas as Configurações>Depuração>Geral.
No painel direito, selecione o link Configurar depuração Just-In-Time.
Na caixa de diálogo Opções do Depurador do Visual Studio, configure a opção Habilitar depuração Just-In-Time para esses tipos de código. Selecione os tipos de código que você deseja que a depuração Just-In-Time depure: Gerenciado (.NET Framework) ou Nativo.
Selecione OK.
Na caixa de diálogo Ferramentas>Opções, expanda a seção Depuração>Just-In-Time.
Na caixa Habilitar depuração Just-In-Time para esses tipos de código, selecione os tipos de código que você deseja depurar usando Just-In-Time debugging: Gerenciado, Nativo e/ou Script.
Selecione OK.
Se você habilitar o depurador Just-In-Time, mas ele não abrir quando um aplicativo falhar ou ocorrer algum erro, consulte Solucionar problemas de depuração Just-In-Time.
Desabilitar a depuração Just-In-Time do registro do Windows
O depurador Just-In-Time ainda pode estar habilitado mesmo se o Visual Studio não estiver mais instalado no seu computador. Se o Visual Studio não estiver mais instalado, você pode desabilitar a depuração Just-In-Time editando o registro do Windows.
Para desabilitar a depuração Just-In-Time editando o registro:
No menu Iniciar do Windows, execute o Editor do Registro (regedit.exe).
Na janela Editor do Registro , localize e exclua as seguintes entradas do Registro se elas existirem:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Exclua também as seguintes entradas do Registro se elas existirem:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Certifique-se de não excluir ou alterar nenhuma outra chave do Registro.
Feche a janela Editor do Registro .
Habilitar a depuração Just-In-Time de um Formulário Windows
Por padrão, os aplicativos do Windows Form têm um manipulador de exceção de nível superior que permite que o aplicativo continue em execução se ele puder se recuperar. Se um aplicativo do Windows Forms gerar uma exceção sem tratamento, ele mostrará a seguinte caixa de diálogo:
Para habilitar o Just-In-Time debugging em vez do tratamento de erros padrão do Windows Forms, adicione estas configurações:
system.windows.formsNa seção do arquivo machine.config ou <nome do aplicativo>.exe.config, defina o valor dejitDebuggingparatrue:<configuration> <system.windows.forms jitDebugging="true" /> </configuration>Em um aplicativo Windows Forms C++ , também defina
DebuggableAttributecomotrueem um arquivo .config ou no seu código. Se você compilar com /Zi e sem /Og, o compilador definirá esse atributo para você. No entanto, se você quiser depurar um build de versão não otimizado, deverá definirDebuggableAttributeadicionando a seguinte linha no arquivo AssemblyInfo.cpp do aplicativo:[assembly:System::Diagnostics::DebuggableAttribute(true, true)];Para obter mais informações, consulte DebuggableAttribute.
Usar depuração Just-in-Time
Este exemplo guia você na depuração Just-In-Time quando um aplicativo gera um erro.
Você deve ter o Visual Studio instalado para seguir estas etapas. Se você não tiver o Visual Studio, poderá baixar o Visual Studio Community Edition gratuito.
Verifique se a depuração Just-In-Time está habilitada configurando a opção Habilitar depuração Just-In-Time para esses tipos de código em Ferramentas>Opções.
Para este exemplo, você faz um aplicativo de console em C# no Visual Studio que gera um NullReferenceException.
No Visual Studio, crie um aplicativo de console em C# (Arquivo>Novo>Projeto>Visual C#>Aplicativo de Console) chamado ThrowsNullException. Para obter mais informações sobre como criar projetos no Visual Studio, consulte Passo a passo: criar um aplicativo simples.
Quando o projeto for aberto no Visual Studio, abra o arquivo Program.cs . Substitua o método Main() pelo código a seguir, que imprime uma linha no console e, em seguida, lança um NullReferenceException:
static void Main(string[] args) { Console.WriteLine("we will now throw a NullReferenceException"); throw new NullReferenceException("this is the exception thrown by the console app"); }Para criar a solução, escolha a configuração Depuração (padrão) ou Release e selecione Compilar>Reconstruir Solução.
Para obter a experiência de depuração completa, selecione a configuração de Depuração .
Se você selecionar a configuração de Release, deve desativar Just My Code para que este procedimento funcione.
No painel de Ferramentas>Opções, expanda a seção Todas as Configurações>Depuração>Geral e desmarque a caixa de seleção Habilitar Apenas Meu Código.
Na caixa de diálogoFerramentas>Opções, expanda a seçãoDepuração>Geral, e desmarque a caixa de seleção Habilitar Apenas Meu Código.
Quando você desmarcar essa opção, a opção Avisar se nenhum código de usuário na depuração inicial (somente gerenciado) for desabilitada automaticamente.
Para obter mais informações sobre configurações de build, consulte Noções básicas sobre configurações de build.
Abra o aplicativo criado ThrowsNullException.exe na pasta do projeto C# (...\ThrowsNullException\ThrowsNullException\bin\Debug ou ...\ThrowsNullException\ThrowsNullException\bin\Release).
Você deverá ver a seguinte janela de comando:
A caixa de diálogo Escolher Depurador Just-In-Time será aberta.
Em Depuradores Disponíveis, selecione Nova instância da sua versão/edição< preferida do >Visual Studio, se ainda não estiver selecionada.
Selecione OK.
O projeto ThrowsNullException é aberto em uma nova instância do Visual Studio, com a execução interrompida na linha que gerou a exceção:
Você pode iniciar a depuração neste ponto. Se você estiver depurando um aplicativo real, precisará descobrir por que o código está lançando a exceção.
Cuidado
Se seu aplicativo contiver código não confiável, uma caixa de diálogo de aviso de segurança será exibida, permitindo que você decida se deseja continuar com a depuração. Antes de continuar a depuração, decida se confia no código. Você mesmo escreveu o código? Se o aplicativo estiver em execução em um computador remoto, você reconhecerá o nome do processo? Se o aplicativo estiver em execução localmente, considere a possibilidade de código mal-intencionado em execução em seu computador. Se você decidir que o código é confiável, selecione OK. Caso contrário, selecione Cancelar.
Solucionar problemas de depuração Just-In-Time
Se a depuração just-In-Time não for iniciada quando um aplicativo falhar, mesmo que ele esteja habilitado no Visual Studio:
Um problema conhecido do Windows pode estar causando que o depurador Just-In-Time falhe.
A correção é adicionar um valor DWORD de Auto, com dados do valor1, às seguintes chaves do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
(Para aplicativos de 32 bits em computadores de 64 bits) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
O Relatório de Erros do Windows pode estar assumindo o tratamento de erros em seu computador.
Para corrigir esse problema, use o Editor do Registro para adicionar um valor DWORD de Disabled, com dados de valor igual a 1, às seguintes chaves do Registro:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting
(Para aplicativos de 32 bits em computadores de 64 bits) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting
Para obter mais informações, consulte . Configurações de WER.
Você pode ver as seguintes mensagens de erro durante a depuração just-In-Time:
Não é possível conectar-se ao processo que está falhando. O programa especificado não é um programa do Windows ou MS-DOS.
O depurador tentou anexar a um processo em execução sob outro usuário.
Para contornar esse problema, no Visual Studio, abra Depurar>Anexar ao Processo (ou pressione Ctrl + Alt + P) e encontre o processo que você deseja depurar na lista de Processos Disponíveis. Se você não souber o nome do processo, localize a ID de processo no depurador Just-In-Time do Visual Studio. Selecione o processo na lista Processos Disponíveis e selecione Anexar. Selecione Não para ignorar a caixa de diálogo do depurador just-In-Time.
Não foi possível iniciar o depurador porque nenhum usuário está conectado.
Não há nenhum usuário conectado ao console, portanto, não há nenhuma sessão de usuário para exibir a janela de diálogo de depuração Just-In-Time.
Para corrigir esse problema, faça logon no computador.
Classe não registrada.
O depurador tentou criar uma classe COM que não está registrada, provavelmente devido a um problema de instalação.
Para corrigir esse problema, use o Instalador do Visual Studio para reinstalar ou reparar sua instalação do Visual Studio.