gh(转到已处理的异常)

gh 命令将给定线程的异常标记为已处理,并允许线程按照导致异常的指令重新启动执行。

User-Mode 语法

[~Thread] gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

Kernel-Mode 语法

gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

参数

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

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

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

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

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

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

环境

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

其他信息

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

注解

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

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