gn、gN(转到未经处理的异常)

gngN 命令继续执行给定线程,而不将异常标记为已处理。 这允许应用程序的异常处理程序处理异常。

User-Mode 语法

[~Thread] gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 
[~Thread] gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

Kernel-Mode 语法

gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 
gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

参数

线程
(用户模式仅) 指定要执行的线程。 此线程必须因异常而停止。 有关语法详细信息,请参阅 线程语法

a
使此命令创建的任何断点都成为处理器断点 (类似于 ba) 创建的断点,而不是像 bpbm) 创建的断点一样的软件断点 (。 如果未指定 BreakAddress ,则不会创建断 点,并且 标志不起作用。

StartAddress
指定执行应开始的地址。 如果未指定此项,调试器会将执行传递到发生异常的地址。 有关语法的详细信息,请参阅 地址和地址范围语法

BreakAddress
指定断点的地址。 如果指定 BreakAddress ,则必须指定指令地址 (即地址必须包含指令) 的第一个字节。 一次最多可以指定 10 个中断地址(按任意顺序)。 如果 BreakAddress 无法解析,则会将其存储为 未解析的断点。 有关语法的详细信息,请参阅 地址和地址范围语法

BreakCommands
指定要在命中 BreakAddress 指定的断点时自动执行的一个或多个命令。 BreakCommands 参数前面必须有分号。 如果指定了多个 BreakAddress 值, 则 BreakCommands 适用于所有值。

注意BreakCommands 参数仅在将此命令嵌入到另一个命令使用的命令字符串中时可用-例如,在另一个断点命令中或例外或事件设置中。 在命令行上,分号将终止该命令,分号后列出的任何其他命令将在 gngN 命令完成后立即执行。

环境

说明
模式 用户模式、内核模式
目标 仅实时调试
平台 all

其他信息

有关发出此命令的其他方法和相关命令的概述,请参阅 控制目标

注解

如果调试器未在断点处停止, 则 gngN 的行为相同。 如果调试器在断点处停止, 则 gn 将不起作用;必须大写“N”才能执行此命令。 这是一种安全预防措施,因为很少明智地继续未经处理的断点。

如果使用 BreakAddress 参数设置断点,则此新断点将仅由当前线程触发。 不会停止在该位置执行代码的其他线程。

如果指定 了 Thread ,则 执行 gn 命令时会取消冻结指定的线程,并冻结所有其他线程。 例如,如果指定 了 ~123gn~#gn~*gn 命令,则指定的线程将解除冻结,所有其他线程被冻结。