gh(转到已处理的异常)

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

用户模式语法

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

内核模式语法

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

参数

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

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

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

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

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

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

环境

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

其他信息

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

注解

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

如果 指定了 Thread ,则 使用指定的线程取消冻结和所有其他冻结执行 gh 命令。 例如,如果 指定了 ~123gh~#gh~*gh 命令,则指定的线程将取消冻结,所有其他线程都会冻结。