gn, gN (Ir com exceção não tratada)
Os comandos gn e gN continuam a execução do thread fornecido sem marcar a exceção como tendo sido tratada. Isso permite que o manipulador de exceção do aplicativo manipule a exceção.
Sintaxe do modo de usuário
[~Thread] gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
[~Thread] gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
Sintaxe do modo kernel
gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
Parâmetros
Fio
(Somente modo de usuário) Especifica o thread a ser executado. Esse thread deve ter sido interrompido por uma exceção. Para obter detalhes de sintaxe, consulte Sintaxe de thread.
um
Faz com que qualquer ponto de interrupção criado por esse comando seja um ponto de interrupção do processador (como aqueles criados por ba) em vez de um ponto de interrupção de software (como aqueles criados por bp e bm). Se BreakAddress não for especificado, nenhum ponto de interrupção será criado e o sinalizador a não terá efeito.
Endereço inicial
Especifica o endereço em que a execução deve começar. Se isso não for especificado, o depurador passará a execução para o endereço em que a exceção ocorreu. Para saber mais detalhes sobre sintaxe, consulte Endereço e sintaxe de intervalo de endereços.
Endereço de interrupção
Especifica o endereço de um ponto de interrupção. Se BreakAddress for especificado, ele deverá especificar um endereço de instrução (ou seja, o endereço deve conter o primeiro byte de uma instrução). Até dez endereços de interrupção, em qualquer ordem, podem ser especificados ao mesmo tempo. Se BreakAddress não puder ser resolvido, ele será armazenado como um ponto de interrupção não resolvido. Para saber mais detalhes sobre sintaxe, consulte Endereço e sintaxe de intervalo de endereços.
Comandos de interrupção
Especifica um ou mais comandos a serem executados automaticamente quando o ponto de interrupção especificado por BreakAddress for atingido. O parâmetro BreakCommands deve ser precedido por um ponto-e-vírgula . Se vários valores BreakAddress forem especificados, BreakCommands se aplicará a todos eles.
Observação O parâmetro BreakCommands só está disponível quando você está inserindo esse comando em uma cadeia de caracteres de comando usada por outro comando – por exemplo, em outro comando de ponto de interrupção ou em uma configuração de exceção ou evento. Em uma linha de comando, o ponto-e-vírgula encerrará o comando e todos os comandos adicionais listados após o ponto-e-vírgula serão executados imediatamente após a conclusão do comando gn ou gN .
Ambiente
Item | Descrição |
---|---|
Modos | modo de usuário, modo kernel |
Destinos | somente depuração ao vivo |
Plataformas | all |
Informações Adicionais
Para obter outros métodos de emissão desse comando e uma visão geral dos comandos relacionados, consulte Controlando o Destino.
Comentários
Se o depurador não for interrompido em um ponto de interrupção, gn e gN se comportarão de forma idêntica. Se o depurador for interrompido em um ponto de interrupção, gn não funcionará; você deve colocar o "N" em maiúscula para executar esse comando. Esta é uma precaução de segurança, pois raramente é aconselhável continuar um ponto de interrupção sem tratamento.
Se você usar o parâmetro BreakAddress para definir um ponto de interrupção, esse novo ponto de interrupção só será disparado pelo thread atual. Outros threads que executam o código nesse local não serão interrompidos.
Se Thread for especificado, o comando gn será executado com o thread especificado descongelado e todos os outros congelados. Por exemplo, se o comando ~123gn, ~#gn ou ~*gn for especificado, os threads especificados serão descongelados e todos os outros serão congelados.