Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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ê dispõe de menos ações de depuração. No entanto, você pode minimizar a interferência do depurador sobre o aplicativo de destino. A depuração não invasiva será útil se o aplicativo de destino tiver parado de responder.
Na depuração não invasiva, o depurador não é efetivamente vinculado ao aplicativo de destino. O depurador suspende todos os threads do destino e tem acesso à memória, aos registros e a outras informações do destino. No entanto, o depurador não pode controlar o alvo, 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 para depurar
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 Localizar 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 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
Há várias outras opções úteis de linha de comando. Para obter mais informações sobre a sintaxe de 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 da linha de comando 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
Há várias outras opções úteis de linha de comando. Para obter mais informações sobre a sintaxe da linha de comando, consulte Opções do WinDbg Command-Line.
WinDbg Menu
Quando o WinDbg está no modo inativo, você pode depurar um processo em execução de forma não invasiva clicando em Anexar a um Processo no menu Arquivo ou pressionando F6.
Quando a caixa de diálogo Anexar ao Processo for exibida, marque a caixa de seleção Não invasiva. 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 invasivamente um ou mais processos. Você pode usar esse comando no CDB se ele estiver inativo, mas não em um WinDbg inativo.
Se o comando .attach -v for bem-sucedido, o depurador analisará 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 não invasivamente mais de um processo por vez. Essa restrição também significa que o uso do 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 de depurador.