pa(步进到地址)
pa 命令执行程序,直到达到指定的地址,并显示每个步骤。
用户模式
[~Thread] pa [r] [= StartAddress] StopAddress ["Command"]
内核模式
pa [r] [= StartAddress] StopAddress ["Command"]
参数
线
指定要继续执行的线程。 所有其他线程都被冻结。 有关语法的详细信息,请参阅线程语法。 只能在用户模式下指定线程。
r
打开和关闭寄存器和标志的显示。 默认情况下将显示寄存器和标志。 可以使用 par、pr、tr 或 .prompt_allow -reg 命令禁用注册显示。 所有这些命令都控制相同的设置,你可以使用其中任何命令替代上述任何命令的使用。
还可以使用 l-os 命令禁用寄存器显示。 此设置与其他三个命令是分开的。 要控制显示哪些寄存器和标志,请使用 rm (Register Mask) 命令。
StartAddress
指定调试器开始执行的地址。 否则,调试器从指令指针指向的指令开始。 有关语法的详细信息,请参阅地址和地址范围语法。
StopAddress
指定执行将停止的地址。 此地址必须与指令的确切地址匹配。
命令
指定在执行步骤后要执行的调试器命令。 此命令在显示标准 pa 结果之前执行。 如果还使用 StopAddress,则指定命令在达到 StopAddress 后执行(但在显示最终步骤的结果之前)。
环境
项 | 说明 |
---|---|
模式 | 用户模式、内核模式 |
目标 | 仅限实时调试 |
平台 | 全部 |
其他信息
有关相关命令的详细信息,请参阅 控制目标。
注解
pa 命令导致目标开始执行。 此执行将继续执行,直到达到指定的指令或遇到断点。
请注意 ,如果在内核模式下使用此命令,则当在任何虚拟地址空间中的指定虚拟地址遇到指令时,执行将停止。
在此执行过程中,所有步骤都显式显示。 调用的函数被视为单个单元。 因此,此命令的显示类似于在程序计数器到达指定地址之前重复执行 p (Step) 时看到的内容。
例如,以下命令显式逐步执行目标代码,直到到达当前函数的返回地址。
0:000> pa @$ra
以下示例演示如何使用 pa 命令和 kb 命令来显示堆栈跟踪:
0:000> pa 70b5d2f1 "kb"