Depuração Just-In-Time no Visual Studio
A depuração Just-In-Time inicia o Visual Studio automaticamente quando uma exceção ou uma falha ocorre em um aplicativo fora do Visual Studio. Isso permite que você teste seu aplicativo quando o Visual Studio não estiver em execução e inicie a depuração no Visual Studio quando um problema ocorrer.
A depuração Just-In-Time não funciona para aplicativos da Windows Store. A depuração Just-In-Time não funciona para código gerenciado que esteja hospedado em um aplicativo nativo, como Visualizadores.
Usando a depuração Just-In-Time
Quando você instala o Visual Studio, a depuração Just-In-Time é habilitada por padrão. Se você precisa desabilitar ou habilitar novamente a depuração Just-In-Time, consulte Restrict stepping to Just My Code.
Quando a depuração Just-In-Time é habilitada, você pode testar seu aplicativo fora do Visual Studio. Quando uma falha ou uma exceção ocorrer, você verá uma caixa de diálogo com uma mensagem semelhante a esta:
Uma exceção sem tratamento ('System.TypeInitializationException') ocorreu em terrarium.exe[3384]
Quando essa caixa de diálogo aparece, você pode iniciar a depuração com o procedimento a seguir.
Para iniciar a depuração Just-In-Time quando um erro ocorrer
Na caixa de diálogo Depuração Just-In-Time, na lista Possíveis Depuradores, clique em Nova instância do Visual Studio 2013 ou clique em uma instância do Visual Studio que já esteja em execução.
Para usar automaticamente o Visual Studio para quaisquer falhas futuras, clique em Definir o depurador selecionado como padrão.
Se você desejar escolher quais tipos de código poderá depurar, clique em Escolher manualmente os mecanismos de depuração. Se você não escolher essa opção, o Visual Studio selecionará automaticamente os mecanismos de depuração apropriados para o tipo de código em seu programa.
Clique em OK.
Se o seu aplicativo contiver um assembly com código não confiável, será exibida uma caixa de diálogo com um aviso de segurança. Essa caixa de diálogo permite que você decida se deseja continuar com a depuração. Antes de prosseguir com a depuração, decida se você confia no código. Você mesmo escreveu o código? Você confia no programador? Se o aplicativo está sendo executado em um computador remoto, você reconhece o nome do processo? Mesmo que o aplicativo seja executado localmente, isso não significa necessariamente que ele é confiável. No Internet Explorer, por exemplo, um controle ActiveX mal-intencionado poderia estar em execução. Considere a possibilidade de execução de um código mal-intencionado no seu computador. Se você decidir que o código que está prestes a depurar é confiável, clique em Depurar. Caso contrário, clique em Não Depurar.
Habilitando ou desabilitando a depuração Just-In-Time
Você pode habilitar ou desabilitar a depuração Just-In-Time da caixa de diálogo Opções.
Para habilitar ou desabilitar a depuração Just-In-Time
No menu Ferramentas, clique em Opções.
Na caixa de diálogo Opções, selecione a pasta Depuração.
Na pasta Depuração, selecione a página Just-In-Time.
Na caixa Habilitar a depuração Just-In-Time para estes tipos de código, marque ou desmarque os tipos de programa relevantes: Gerenciado, Nativo ou Script.
Para desabilitar a depuração Just-In-Time depois que ela tiver sido habilitada, você deve executar com privilégios de administrador. A habilitação da depuração Just-In-Time define uma chave do Registro, sendo necessários privilégios de Administrador para alterar essa chave.
Clique em OK.
Por padrão, os aplicativos do Windows Forms têm um manipulador de exceção de nível superior que permite que o programa continue a executar se puder recuperar. Como resultado, você deve executar as seguintes etapas adicionais para habilitar a depuração Just-In-Time de um aplicativo do Windows Forms.
Para habilitar a depuração Just-In-Time de um formulário do Windows
Defina o valor de jitDebugging como true na seção system.windows.form do arquivo machine.config ou do arquivo .exe.config do aplicativo:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
No aplicativo C++ do Windows Form, você também deve definir DebuggableAttribute em um arquivo .config ou no seu código. Se você compilar com /Zi e sem /Og, o compilador definirá esse atributo para você. Se você desejar depurar uma compilação de liberação não otimizada, no entanto, deverá definir isso por conta própria. Você pode fazer isso adicionando a seguinte linha ao arquivo de AssemblyInfo.cpp do seu aplicativo:
[assembly:System::Diagnostics::DebuggableAttribute(true, true)];
Para obter mais informações, consulte DebuggableAttribute.
A depuração Just-In-Time ainda poderá ser habilitada, mesmo que o Visual Studio não esteja mais instalado no seu computador. Quando o Visual Studio não estiver instalado, você não poderá desabilitar a depuração Just-In-Time da caixa de diálogo Opções do Visual Studio. Nesse caso, você poderá 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, procure e execute regedit.exe
Na janela Editor do Registro, localize e exclua as seguintes chaves do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Se o seu computador estiver executando um sistema operacional de 64 bits, exclua também as seguintes chaves do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Tenha cuidado para não excluir ou não alterar acidentalmente quaisquer outras chaves do Registro.
Feche a janela Editor do Registro.
Erros da depuração Just-In-Time
Você pode ver as seguintes mensagens de erro que estão associadas à depuração Just-In-Time.
Não é possível se anexar ao processo de travamento. O programa especificado não é um programa do Windows ou do MS-DOS.
Este erro ocorre quando você tenta anexar a um processo executando como outro usuário no Windows 2000.
Para resolver esse problema, inicie o Visual Studio, abra a caixa de diálogo Anexar ao Processo no menu Depurar e localize o processo que você deseja depurar na lista Processos Disponíveis. Se você não souber o nome do processo, consulte a caixa de diálogo Depurador Just-In-Time do Visual Studio e anote a ID do processo Selecione o processo na lista Processos Disponíveis e clique em Anexar. Na caixa de diálogo Depurador Just-In-Time do Visual Studio, clique em Não para descartar a caixa de diálogo.
Não foi possível iniciar o depurador porque não há usuário conectado.
Este erro ocorre quando a depuração Just-In-Time tenta iniciar o Visual Studio em um computador no qual não há nenhum usuário conectado ao console. Como nenhum usuário está conectado, não há sessão de usuário para exibir a caixa de diálogo Depuração Just-In-Time.
Para corrigir esse problema, conecte-se ao computador.
Classe não registrada.
Este erro indica que o depurador tentou criar uma classe COM não registrada, provavelmente devido a um problema de instalação.
Para corrigir o problema, use o disco de instalação para reinstalar ou reparar sua instalação do Visual Studio.
Consulte também
Referência
Caixa de diálogo Just-In-Time, Depuração, Opções