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.
Se um aplicativo de modo de usuário já estiver em execução, o depurador poderá depurá-lo de forma não invasiva. Com a depuração não invasiva, você não tem tantas ações de depuração. No entanto, você pode minimizar a interferência do depurador com o aplicativo de destino. A depuração não invasiva é útil se o aplicativo de destino parou de responder.
Na depuração não invasiva, o depurador não se liga ao aplicativo de destino. O depurador suspende todos os threads do destino e tem acesso à memória, registros e outras informações do destino. No entanto, o depurador não pode controlar o destino, portanto, comandos como g (Go) não funcionam.
Se você tentar executar comandos que não são permitidos durante a depuração não invasiva, receberá uma mensagem de erro informando: "O depurador não está anexado, portanto, a execução do processo não pode ser monitorada."
Selecionando o processo a ser depurado
Você pode especificar o aplicativo de destino pela ID do processo (PID) ou pelo nome do processo.
Se você especificar o aplicativo pelo nome, deverá usar o nome completo do processo, incluindo a extensão de nome de arquivo. Se dois processos tiverem o mesmo nome, você deverá usar a ID do processo.
Para obter mais informações sobre como determinar a ID do processo e o nome do processo, consulte Localizando a ID do processo.
Para obter informações sobre como iniciar e parar uma sessão de depuração não invasiva, consulte os seguintes tópicos:
Linha de comando CDB
Para depurar de forma não invasiva um processo em execução a partir da linha de comando CDB, especifique a opção -pv, a opção -p e a ID do processo na sintaxe a seguir.
cdb -pv -pProcessID
Ou, para depurar de forma não invasiva um processo em execução especificando o nome do processo, use a sintaxe a seguir.
cdb -pv -pnProcessName
Existem várias outras opções de linha de comando úteis. Para obter mais informações sobre a sintaxe da linha de comando, consulte Opções de Command-Line CDB.
Linha de comando WinDbg
Para depurar de forma não invasiva um processo em execução a partir da linha de comando do WinDbg, especifique a opção -pv, a opção -p e a ID do processo na sintaxe a seguir.
windbg -pv -pProcessID
Ou, para depurar de forma não invasiva um processo em execução especificando o nome do processo, use a sintaxe a seguir.
windbg -pv -pnProcessName
Existem várias outras opções de linha de comando úteis. Para obter mais informações sobre a sintaxe da linha de comando, consulte Opções de Command-Line do WinDgg.
WinDbg Menu
Quando o WinDbg está no modo latente, você pode depurar de forma não invasiva um processo em execução clicando em Anexar a um processo no menu Arquivo ou pressionando F6.
Quando a caixa de diálogo Anexar ao Processo for exibida, marque o campo de seleção Não invasivo. Em seguida, selecione a linha que contém a ID do processo e o nome desejados. (Você também pode inserir a ID do processo na caixa ID do processo.) Por fim, clique em OK.
Janela de comando do depurador
Se o depurador já estiver ativo, você poderá depurar de forma não invasiva um processo em execução usando o comando .attach -v (Anexar ao processo) na janela Comando do depurador.
Você pode usar o comando .attach se o depurador já estiver depurando um ou mais processos de forma invasiva. Você pode usar esse comando em CDB se ele estiver inativo, mas não em um WinDbg adormecido.
Se o comando .attach -v for bem-sucedido, o depurador depurará o processo especificado na próxima vez que emitir um comando de execução. Como a execução não é permitida durante a depuração não invasiva, o depurador não pode depurar de forma não invasiva mais de um processo de cada vez. Essa restrição também significa que usar o comando .attach -v pode tornar uma sessão de depuração invasiva existente menos útil.
Iniciando a sessão de depuração
Para obter mais informações sobre como iniciar uma sessão de depuração, consulte Operação do depurador.