Depuração Just-In-Time
This topic applies to:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium e Ultimate |
A depuração Just-In-Time inicia o Visual Studio automaticamente quando uma exceção ou o travamento ocorre em um aplicativo em execução fora de Visual Studio. Isso permite que você teste seu aplicativo quando o Visual Studio não está em execução e iniciar a depuração com Visual Studio quando ocorre um problema.
A depuração Just-In-Time não funciona para código gerenciado que está hospedado em um aplicativo nativo, como Visualizers. Se você instalar o.NET Framework no Windows Server 2003 ou no Windows 2000 SP3 (ou posterior), Just-In-Time debugging não funcionará para um processo em execução em uma conta de usuário limitado em uma sessão de serviços de Terminal quando o computador foi reinicializado.
Usando o Just-In-Time debugging
Quando você instala o Visual Studio, Just-In-Time de depuração está habilitado por padrão. Se você precisar desativar ou reativar Just-In-Time de depuração, consulte Enabling or disabling Just-In-Time Debugging.
Quando Just-In-Time de depuração está habilitado, você pode testar a sua aplicação fora do Visual Studio. Quando um travamento ou exceção ocorre, você verá que uma caixa de diálogo aparece com uma mensagem parecida com isto:
An unhandled exception ('System.TypeInitializationException') occurred in terrarium.exe[3384]
Quando for exibida a caixa de diálogo, você pode começar a depuração com o procedimento a seguir.
Para iniciar quando um erro de depuração Just-In-Time ocorre
Na caixa de diálogo de depuração Just na Possible Debuggers lista, clique em nova instância de 2010 de Visual Studio ou clique em uma instância de Visual Studio 2010 é que já em execução.
Para usar Visual Studio automaticamente para todas as falhas futuras, clique em Set the currently selected debugger como padrão.
If you want to choose what types of code you will be able to debug, click Manually choose the debugging engines. Se você não escolher esta opção, o Visual Studio seleciona automaticamente os mecanismos de depuração apropriados para o tipo de código no seu programa.
Click OK.
Se seu aplicativo contém um assembly com código não confiável, será exibida uma caixa de diálogo com um aviso de segurança. Esta caixa de diálogo permite que você decida se deseja ou não prosseguir com a depuração. Antes de continuar com a depuração, decida se você confia no código. Você escrever o código sozinho? O codificador você confia? Se o aplicativo é executado em uma máquina remota, reconhece o nome do processo? Mesmo se o aplicativo é executado localmente, isso não significa necessariamente podem ser confiável. No Internet Explorer, por exemplo, um controle de ActiveX mal-intencionados poderia estar em execução. Considere a possibilidade de tal código mal-intencionado em execução no seu computador. Se você decidir que o código que você está prestes a depuração é confiável, clique em Debug. Caso contrário, clique em Don't Debug.
Ativando ou desativando o Just-In-Time debugging
Você pode habilitar ou Desabilitar depuração de Just-In-Time de Opções caixa de diálogo.
Para ativar ou desativar Just-In-Time de depuração
On the Tools menu, click Options.
In the Options dialog box, select the Debugging folder.
In the Debugging folder, select the Just-In-Time page.
No Just habilitar depuração desses tipos de código caixa, marque ou desmarque os tipos de programa relevantes: Gerenciado, nativo, ou Script.
To disable Just-In-Time debugging, once it has been enabled, you must be running with Administrator privileges. Enabling Just-In-Time debugging sets a registry key, and Administrator privileges are required to change that key.
Click OK.
Por padrão, os aplicativos Windows Forms têm um manipulador de exceção de nível superior que permite que o programa continue a ser executado se ele pode recuperar. Como resultado, você deve executar etapas adicionais para depuração de ativar Just-In-Time de um aplicativo Windows Forms.
To enable Just-In-Time debugging of a Windows Form
Definir o jitDebugging valor para true no na system.windows.form seção o Machine. config ou aplicativo. exe:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
Em um aplicativo do Windows Form do C++, você também deve definir DebuggableAttribute em um arquivo. config ou no código. If you compile with /Zi and without /Og, the compiler sets this attribute for you. Se você deseja depurar uma versão não-otimizados de compilação, no entanto, você deve definir isso sozinho. Você pode fazer isso adicionando a seguinte linha ao seu arquivo AssemblyInfo do seu aplicativo:
[assembly:System::Diagnostics::DebuggableAttribute(true, true)];
For more information, see DebuggableAttribute.
A depuração Just-In-Time ainda pode ser ativado, mesmo se Visual Studio não está mais instalado no seu computador. Quando o Visual Studio não estiver instalado, você não pode desativar a depuração a partir do Visual Studio Just-In-Time Opções caixa de diálogo. Nesse caso, você pode desativar editando o registro do Windows de depuração Just-In-Time.
Para desativar o Just-In-Time debugging editando o registro
No Iniciar menu, clique em Executar.
No Executar caixa de diálogo, digite regedit, em seguida, clique em OK.
No Editor do registro janela, localize e exclua as chaves de registro a seguir:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Se seu computador estiver executando um sistema operacional de 64 bits, também exclua as chaves de registro a seguir:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Tome cuidado para não excluir acidentalmente ou alterar outras chaves de registro.
Fechar o Editor do registro janela.
Erros de depuração Just-In-Time
Você pode ver as seguintes mensagens de erro que estão associadas a Just-In-Time debugging.
Exceção win32 sem tratamento no <program>. Just-In-Time debugging essa exceção falhou com o seguinte erro: The logged in user did not have access to debug the crashing application.
Esta mensagem indica que Just-In-Time a depuração falhou porque você não tem permissões de acesso apropriados. Para obter informações sobre as permissões necessárias, consulte Permissões de depuração remota.
Não é possível anexar ao processo que travou. O programa especificado não é um programa do Windows ou MS-DOS.
Este erro ocorre quando você tenta anexar a um processo em execução como outro usuário no Windows 2000.
Para contornar esse problema, inicie o Visual Studio, abra o Attach to Process na caixa de diálogo a Depurar menu e localizar o processo você deseja depurar na Available Processes lista. Se você não souber o nome do processo, examine o Visual Studio depurador de Just caixa de diálogo e observe a identificação de processo. Selecione o processo de Available Processes lista e clique em Attach. No Visual Studio depurador de Just caixa de diálogo, clique em não para descartar a caixa de diálogo.
Debugger could not be started because no user is logged on.
Este erro ocorre quando Just-In-Time debugging tenta iniciar Visual Studio em uma máquina onde nenhum usuário fez logado no console. Como nenhum usuário estiver conectado, não há nenhuma sessão de usuário para exibir o Just-In-Time debugging a caixa de diálogo.
Para corrigir esse problema, faça logon na máquina.
Classe não registrada.
Este erro indica que 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 disco de instalação para reinstalar ou reparar o seu Visual Studio instalação.
Consulte também
Referência
Just-In-Time, depuração, a caixa de diálogo Opções
Conceitos
Outros recursos
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Julho de 2010. |
Consolidada de informações em um tópico para melhor capacidade de descoberta. |
Comentários do cliente. |
Agosto de 2010. |
Removida a mensagem de erro obsoleto. |
Comentários do cliente. |