Compartilhar via


Depuração Just-In-Time

A depuração just-in-time inicia o Visual Studio automaticamente quando uma exceção ou uma falha ocorrem em um aplicativo executado fora do Visual Studio.Isso permite que você teste seu aplicativo quando o Visual Studio não está executando e iniciar a depuração no Visual Studio quando um problema ocorre.

A depuração just-in-time não funciona para apps de armazenamento do windows.A depuração just-in-time não funciona para código gerenciado que está 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 é ativada por padrão.Se você precisar ou reativar desativar a depuração just-in-time, consulte Ativar ou desativar a depuração just-in-time.

Quando a depuração just-in-time é ativada, você pode testar seu aplicativo fora do Visual Studio.Quando uma falha ou uma exceção ocorre, você verá uma caixa de diálogo aparece com uma mensagem que parece nada mais semelhante:

Uma exceção não tratada (“") System.TypeInitializationException ocorreu em terrarium.exe 3384 []

Quando esta caixa de diálogo aparecer, você pode iniciar a depuração com o seguinte procedimento.

Para iniciar depuração just-in-time quando ocorre um erro

  1. Em a caixa de diálogo de depuração just-in-time, na lista de Possíveis Depuradores , clique em ou clique Nova instância do Visual Studio 2012 uma instância do Visual Studio que já está sendo executado.

  2. Para usar o Visual Studio automaticamente para quaisquer falhas do futuro, clique Defina o depurador selecionado como o padrão.

  3. Se você desejar escolher quais tipos de código você poderá depurar, clique Escolha manualmente os mecanismos de depuração.Se você não escolher essa opção, o Visual Studio automaticamente seleciona mecanismos apropriadas de depuração para o tipo de código em seu programa.

  4. Clique em OK.

  5. Se seu aplicativo contiver um assembly com código não confiável, uma caixa de diálogo com um aviso de segurança aparece.Esta caixa de diálogo permite que você decidir se continuar com a depuração.Antes de prosseguir com a depuração, decida se você confiar no código.Você escreveu o código que você mesmo?Você confia o codificador?Se o aplicativo é executado em um computador remoto, você reconhece o nome do processo?Mesmo se o aplicativo é executado localmente, isto não significa necessariamente que se pode confiar.Em o Internet Explorer, por exemplo, um controle ActiveX mal-intencionado pode executar.Considere a possibilidade de tal execução de código mal-intencionado no seu computador.Se você decidir o código que você está prestes a depuração de é confiável, clique Depurar.Se não, clique Não depuração.

Ativar ou desativar a depuração just-in-time

Você pode ativar ou desativar a depuração just-in-time da caixa de diálogo de Opções .

Para ativar ou desativar a depuração just-in-time

  1. No menu Ferramentas, clique em Opções.

  2. Em a caixa de diálogo de Opções , selecione a pasta de Depurando .

  3. Em a pasta de Depurando , selecione a página de Just-in-time .

  4. Em a caixa de Ativar a depuração just-in-time de esses tipos de código , marque ou desmarque os tipos relevantes do programa: Gerenciado, Nativo, ou Script.

    Para desativar a depuração just-in-time, uma vez que foi ativado, você deve executar com privilégios de administrador.Ativar a depuração just-in-time define uma chave do Registro, e os privilégios de administrador são necessários para alterar a chave.

  5. Clique em OK.

Por padrão, aplicativos de formulários do windows têm um manipulador de nível superior de exceção que permite que o programa continuar a executar se pode recuperar.Como resultado, você deve executar as seguintes etapas adicionais para ativar a depuração just-in-time de um aplicativo windows forms.

Para ativar a depuração just-in-time do windows

  1. Defina o valor de jitDebugging a true na seção de system.windows.form do arquivo machine.config ou de aplicativo.exe.config:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>
    
  2. Em janelas de C++ do aplicativo, você também deve definir DebuggableAttribute em um arquivo .config ou em seu código.Se você compilar com /Zi e sem /Og, o compilador define o atributo para você.Se você quiser depurar uma compilação não otimizada de versão, no entanto, você deve definir o este você mesmo.Você pode fazer isso adicionando a seguinte linha ao seu 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 pode ainda ser habilitada mesmo se o Visual Studio não é instalado em seu computador.Quando o Visual Studio não estiver instalado, você não pode desativar a depuração just-in-time da caixa de diálogo do Visual Studio Opções .Em esse caso, você pode desativar a depuração just-in-time editando o Registro do Windows.

Para desativar a depuração just-in-time editando o Registro

  1. Em o menu de Iniciar , na pesquisa para e em execução o regedit.exe

  2. Em a janela de Editor do Registro , localize e excluir chaves do Registro a seguir:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

    • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ DbgManagedDebugger

  3. Se o computador estiver executando um sistema operacional de 64 bits, exclua as seguintes chaves do Registro também:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

    • HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ DbgManagedDebugger

  4. Ter cuidado para não excluir ou não altere acidentalmente quaisquer outras chaves do Registro.

  5. Feche a janela de editor de Registy .

Erros de depuração just-in-time

Você pode ver as seguintes mensagens de erro que estão associadas com a depuração just-in-time.

  • Uma exceção não tratada ocorreu no win32 <program>. As depuração just-in-time que falharam essa exceção com o seguinte erro: O usuário conectado não tinha acesso para depurar o aplicativo com falha.

    Esta mensagem indica a depuração just-in-time falhou porque você não tem permissões de acesso adequadas.Para obter informações sobre as permissões necessárias, consulte Remote Debugging Permissions.

  • Não é possível se anexar ao processo de travamento.O programa é especificado não windows ou programa de MS-DOS.

    Este erro ocorre quando você tentar anexar a um processo que é executado como um outro usuário no Windows 2000.

    Para resolver esse problema, inicie o Visual Studio, abra a caixa de diálogo de Anexar a Processo do menu de Depurar , e localize o processo que você deseja depurar na lista de Processos Disponíveis .Se você não souber o nome do processo, veja a caixa de diálogo de Depurador Just-In-Time do Visual Studio e observe a identificação de processoSelecione o processo na lista de Processos Disponíveis e clique Anexar.Em a caixa de diálogo de Depurador Just-In-Time do Visual Studio , clique 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 tentar iniciar o Visual Studio em um computador onde não há nenhum usuário efetuado logon no console.Porque nenhum usuário estiver conectado, 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, registrar no computador.

  • Classe não registrada.

    Este erro indica que o depurador provavelmente tentou criar uma classe COM que não é registrado, devido a um problema de instalação.

    Para corrigir esse problema, use o disco de configuração para reinstale ou reparar sua instalação do Visual Studio.

Consulte também

Referência

Just-In-Time, depuração, caixa de diálogo Opções

Aviso de segurança: Anexação a processo pertencente a um usuário não confiável pode ser perigoso. Se as seguintes informações parecem suspeitas ou você não tiver certeza, não se conectar a esse processo

Conceitos

Segurança do depurador

Outros recursos

Depurador Roadmap