Partilhar via


Reanexando ao aplicativo de destino

Se o depurador congelar ou parar de responder (ou seja, falhar) durante a depuração do modo de usuário, você poderá anexar um novo depurador ao processo existente.

Nota Esse método tem suporte apenas no Microsoft Windows XP e em versões posteriores do Windows. Esse método não depende se o depurador originalmente criou o processo ou anexou a um processo existente. Esse método não depende se você usou a opção -pd .

Para reanexar um depurador a um aplicativo de destino existente, faça o seguinte:

  1. Determine a ID do processo do aplicativo de destino.

  2. Inicie uma nova instância de CDB ou WinDbg. Use a opção de linha de comando -pe .

    Debugger -pe -p PID 
    

    Você também pode usar outras opções de linha de comando.

    Você também pode se conectar de um depurador inativo usando o comando .attach (Anexar ao Processo) junto com a opção -e .

  3. Depois que a anexação for concluída, encerre o processo original do depurador.

  4. Se o processo não responder corretamente, ele poderá ter uma contagem de suspensão muito alta. Você pode usar o comando ~m (Retomar Thread) para reduzir a contagem de suspensão. Para obter mais informações sobre contagens de suspensão, consulte Controlando processos e threads.

Se o depurador original ainda estiver operando corretamente, esse método poderá não funcionar. Os dois depuradores estão competindo por eventos de depuração e o sistema operacional Windows não atribui necessariamente todos os eventos de depuração ao novo depurador.

Se o depurador original for encerrado antes de anexar o novo depurador, o aplicativo de destino também será fechado. (No entanto, se o depurador anexado com a opção -pd e sair normalmente, o aplicativo de destino continuará em execução. Nessa situação, um segundo depurador pode anexar ao aplicativo de destino sem usar a opção -pe .)

Se você já estiver depurando um processo e quiser desanexar do processo, mas deixá-lo congelado em um estado de depuração, poderá usar o comando .abandon (Abandonar Processo). Após esse comando, qualquer depurador do Windows pode reanexar ao processo usando o procedimento descrito neste tópico.