p(步进)

p 命令执行单个指令或源行,并选择性地显示所有寄存器和标志的结果值。 当子例程调用或中断发生时,它们被视为单个步骤。

User-Mode

[~Thread] p[r] [= StartAddress] [Count] ["Command"] 

Kernel-Mode

p[r] [= StartAddress] [Count] ["Command"] 

参数

线程
指定要继续执行的线程。 所有其他线程被冻结。 有关语法详细信息,请参阅 线程语法。 只能在用户模式下指定线程。

R
打开和关闭寄存器和标志的显示。 默认情况下,将显示寄存器和标志。 可以使用 pr、tr.prompt_allow -reg 命令禁用寄存器显示。 这三个命令都控制同一设置,可以使用其中的任何命令来替代以前使用这些命令的任何一种。

也可使用 l-os 命令禁用寄存器显示。 此设置独立于其他三个命令。 若要控制显示哪些寄存器和标志,请使用 rm (Register Mask) 命令。

StartAddress
指定应开始执行的地址。 如果不使用 StartAddress,则从指令指针指向的指令开始执行。 有关语法的详细信息,请参阅地址和地址范围语法

计数
指定在停止之前要逐步执行的说明或源行数。 每个步骤都作为单独的操作显示在 调试器命令窗口。 默认值为 1。

命令
指定执行步骤后要执行的调试器命令。 此命令在显示标准 p 结果 之前执行。 如果还使用 Count,则在所有单步执行完成后, (在显示最后一个步骤的结果之前执行指定的) 。

环境

模式

用户模式、内核模式

目标

仅实时调试

平台

全部

其他信息

有关发出 p 命令和相关命令的概述,请参阅 控制目标

注解

指定 Count ,每个指令在逐步执行时显示。

如果调试器在单步执行时遇到调用指令或中断,则调用的子例程将完全执行,除非遇到断点。 调用或中断后,在下一条指令中将控制权返回到调试器。

每个步骤执行单个程序集指令或单个源行,具体取决于调试器是位于程序集模式还是源模式。 使用 l+t 和 l-t 命令或 WinDbg 工具栏上的按钮在这些模式之间切换。

在 WinDbg 中多次快速单步执行时,调试信息窗口在每个步骤后更新。 如果此更新导致响应时间变慢,请使用 .suspend_ui (挂起 WinDbg 接口) 以暂时暂停这些窗口的刷新。