th (Trace to Next Branching Instruction)
th 命令继续执行程序直到到达任何种类的分支指令,包括条件或非条件跳转、调用、返回和系统调用。
语法
用户模式
[~Thread] th [r] [= StartAddress] [Count]
内核模式
th [r] [= StartAddress] [Count]
参数
- Thread
- 指定要继续执行线程。所有其它线程都会被冻结。该语法的更多信息,查看线程语法。只有用户模式下可以指定线程。
- r
- 打开或关闭寄存器和标志位的显示。默认情况下,寄存器和标志会被显示出来。可以通过thr、pr、tr或.prompt_allow -reg命令来禁止显示寄存器。所有这三个命令都可以控制相同的设置,可以用它们中任意一个来覆盖前面命令的设置。
也可以使用l-os来禁止显示寄存器。该设置
和其他四条命令是分离的。使用rm (Register Mask)命令来控制显示哪些寄存器和标志位。
- StartAddress
- 指定执行开始的地址。如果不使用StartAddress,则从指令指针指向的位置开始执行。该语法的更多信息,查看地址和地址区域语法。
- Count
- 指定th命令停止前要遇到的分支指令个数。默认值为1。
环境
模式 |
用户模式、内核模式 |
目标 |
仅活动目标 |
平台 |
所有 |
注释
th使得目标开始执行,直到调试器遇到分支指令或者断点。
如果当前程序计数器已经在一条分支指令上,调试器会跟踪进去并继续执行到遇到另一个分支时。进行跟踪而不是执行,是th和ph (Step to Next Branching Instruction)命令唯一的区别。
th 对所有活动会话都可用。该能力是th和tb (Trace to Next Branch)的主要不同。
在源码模式下,一个源码行可能和多条汇编指令对应。该命令不会在当前源码行的分支指令上停止。
附加信息
相关命令的更多信息,查看控制调试目标。
Build machine: CAPEBUILD