pt (Step to Next Return)
pt 命令执行程序直到遇到返回指令。
语法
用户模式
[~Thread] pt [r] [= StartAddress] [Count] ["Command"]
内核模式
pt [r] [= StartAddress] [Count] ["Command"]
参数
- Thread
- 指定要继续执行的线程。所有其它线程都会被冻结。该语法的更多信息,查看线程语法。只能在用户模式下指定线程。
- r
- 打开或关闭对寄存器和标志位的显示。默认情况下,寄存器和标志位会被显示出来。可以通过ptr、
pr、tr或.prompt_allow -reg命令来禁止显示。这些命令都可以用来控制该设置,并且可以覆盖之前使用这些命令进行任何设置。
也可以通过l-os命令禁止对寄存器的显示。这个设置和其他三个命令是分开的。要控制哪些寄存器和标志位被显示出来,使用rm (Register Mask)
命令。
- StartAddress
- 指定执行开始的地址,否则从指令指针指向的指令开始执行。该语法的更多信息,查看地址和地址区域语法。
- Count
- 指定遇到多少个return指令该命令才会停下来。默认值为1。
- Command
- 指定单步完成后要执行的调试器命令。该命令在标准的pt结果显示之前执行。如果还使用了Count,指定命令在所有步骤完成之后执行(但是在最后一步的结果显示之前)。
环境
模式 |
用户模式、内核模式 |
目标 |
仅活动调试 |
平台 |
所有 |
注释
pt 命令使得目标开始执行,直到遇到return指令或断点。
如果程序计数器正在一条return指令上,则会先执行整个返回过程。返回之后,继续执行直到遇到其他return指令。这种执行而不是跟踪,是pt
和tt (Trace to Next Return)的唯一区别。
源码模式下,一个代码行可能和多条汇编指令关联。pt不会在当前源码行关联的return指令处停止。
下面的例子演示了使用pt和kb命令一起显示调用堆栈:
0:000> pt "kb"
附加信息
相关命令的更多信息,查看控制调试目标。
Build machine: CAPEBUILD