Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A depuração deIn-Time pode iniciar o Visual Studio automaticamente quando um aplicativo executado fora do Visual Studio comete 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 programas do ambiente 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 apenas pretendes impedir que a caixa de diálogo do Depurador Just-In-Time apareça, mas não tens o Visual Studio instalado, consulta Desativar o Depurador Just-In-Time. Caso tenha tido o Visual Studio instalado, poderá precisar de desativar a depuração Just-In-Time a partir do registo do Windows.
Ativar ou desativar 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 menusOpções de > ouOpções de >. 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 executando o Visual Studio como administrador. Habilitar ou desativar a depuração Just-In-Time define uma chave do registo, e privilégios de administrador podem ser necessários para alterar a chave. Para abrir o Visual Studio como administrador, clique com o botão direito do mouse no aplicativo Visual Studio e escolha Executar como administrador.
Para ativar ou desativar a depuração Just-In-Time:
No painel Ferramentas>, expanda 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 Ativar 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 secção de Depuração>Just-In-Time.
Na caixa Ativar 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: Managed, Nativee/ou Script.
Selecione OK.
Se ativar o depurador Just-In-Time, mas ele não abrir quando um aplicativo falhar ou ocorrerem erros, consulte Resolução de problemas de depuraçãoIn-Time.
Desativar a depuração Just-In-Time do registo do Windows
A depuração apenas-In-Time ainda pode estar habilitada mesmo que o Visual Studio não esteja mais instalado no seu computador. Se o Visual Studio não estiver mais instalado, você poderá desabilitar a depuração doIn-Time editando o registro do Windows.
Para desativar a depuração do Just-In-Time editando o registo:
No menu Iniciar do Windows, execute o Editor do Registro (regedit.exe).
Na janela do Editor do Registro , localize e exclua as seguintes entradas do Registro, se 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 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 quaisquer outras chaves do Registro.
Feche a janela Editor do Registro.
Habilitar a depuração Just-In-Time de um Windows Form
Por padrão, os aplicativos do Windows Form têm um manipulador de exceções de nível superior que permite que o aplicativo continue em execução se puder se recuperar. Se um aplicativo do Windows Forms lançar uma exceção sem tratamento, ele mostrará a seguinte caixa de diálogo:
Para habilitar a depuração Just-In-Time em vez do tratamento de erros padrão do Windows Form, adicione estas configurações:
Na secção
system.windows.formsdo arquivo de nome do aplicativo.exe.config<>, defina como o valorjitDebugging:<configuration> <system.windows.forms jitDebugging="true" /> </configuration>Em um aplicativo C++ Windows Form, também defina
DebuggableAttributeparatrueem um arquivo .config ou em seu código. Se você compilar com /Zi e sem /Og, o compilador define esse atributo para você. No entanto, se quiser depurar uma compilação de versão não otimizada, você deve definirDebuggableAttributeadicionando a seguinte linha no arquivo de AssemblyInfo.cpp do seu aplicativo:[assembly:System::Diagnostics::DebuggableAttribute(true, true)];Para obter mais informações, consulte DebuggableAttribute.
Usar depuração Just-In-Time
Este exemplo orienta você pela depuração Just-In-Time quando um aplicativo lança um erro.
Você deve ter o Visual Studio instalado para seguir estas etapas. Se você não tiver o Visual Studio, poderá baixar gratuitamente o Visual Studio Community Edition.
Certifique-se de que a depuração Just-In-Time está ativada configurando a opção Ativar depuração Just-In-Time para esses tipos de códigoem>Opções de ferramentas.
Neste exemplo, você cria um aplicativo de console C# no Visual Studio que lança um NullReferenceException.
No Visual Studio, crie um aplicativo de console 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 Debug (padrão) ou Release e selecione Build>Rebuild Solution.
Para obter a experiência completa de depuração, selecione a configuração de depuração .
Se você selecionar a configuração Release , deverá desativar Just My Code para que este procedimento funcione.
No painel Ferramentas>Opções, expanda a seção Todas as Configurações>Depuração>Geral e desmarque a caixa de seleção Desativar Apenas o Meu Código.
Na caixa de diálogo Ferramentas Opções, expanda a seção Depuração Geral e desmarque a caixa de seleção Habilitar Somente o Meu Código.
Quando você desmarca essa opção, a opção Avisar se nenhum código de usuário ao iniciar a depuração (somente gerenciado) é automaticamente desabilitada.
Para obter mais informações sobre configurações de compilação, consulte Noções básicas sobre configurações de compilação.
Abra o aplicativo criado ThrowsNullException.exe na pasta do projeto C# (...\ThrowsNullException\ThrowsNullException\bin\Debug ou ...\ThrowsNullException\ThrowsNullException\bin\Release).
Você deve ver a seguinte janela de comando:
A caixa de diálogo Choose Just-In-Time Debugger é aberta.
Em Depuradores Disponíveis, selecione Nova instância de <sua versão/edição preferida do Visual Studio>, se ainda não estiver selecionada.
Selecione OK.
O projeto ThrowsNullException é aberto numa nova instância do Visual Studio, onde a execução é interrompida na linha que lançou a exceção.
Você pode começar a depuração a partir deste ponto. Se estiveres a depurar uma aplicação real, precisarás entender a razão pela qual o código está a gerar a exceção.
Atenção
Se o 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 prosseguir 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 sendo executado em uma máquina remota, você reconhece o nome do processo? Se o aplicativo estiver sendo executado localmente, considere a possibilidade de código mal-intencionado em execução no seu computador. Se você decidir que o código é confiável, selecione OK. Caso contrário, selecione Cancelar.
Solucionar problemas de depuração do Just-In-Time
Se a depuração Just-In-Time não for iniciada quando uma aplicação falha, mesmo estando habilitada no Visual Studio:
Um problema conhecido do Windows pode estar fazendo com que o depurador Just-In-Time falhe.
A correção é adicionar um valor DWORD de de Auto, com dados de valor de 1, para as seguintes chaves do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
(Para aplicações de 32 bits em máquinas 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 no seu computador.
Para corrigir esse problema, use o Editor do Registro para adicionar um Valor DWORD de de Desativado, com dados de valor de de 1, às seguintes chaves do registro:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting
(Para aplicações de 32 bits em máquinas de 64 bits) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting
Para obter mais informações, consulte . Configurações do WER.
Poderá ver as seguintes mensagens de erro durante a depuração do Just-In-Time:
Não é possível anexar ao processo em colapso. O programa especificado não é um programa Windows ou MS-DOS.
O depurador tentou anexar a um processo em execução de outro usuário.
Para contornar este problema, no Visual Studio, abra Depurar>Anexar ao Processo (ou pressione Ctrl + Alt + P) e localize o processo que deseja depurar na lista de Processos Disponíveis. Se não souber o nome do processo, encontre o ID do Processo na caixa de diálogo Visual Studio Just-In-Time Debugger. Selecione o processo na lista Processos Disponíveis e depois clique em Anexar. Selecione Não para descartar a caixa de diálogo do Just-In-Time depurador.
Depurador não pôde ser iniciado porque nenhum usuário está conectado.
Não há nenhum usuário conectado ao console, portanto, não há sessão de usuário para exibir a caixa de diálogo de depuração Just-In-Time.
Para corrigir esse problema, faça logon na máquina.
Classe não registada.
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 a instalação do Visual Studio.