WinDbg常用指令

1.r :显示寄存器的信息也可用来更改寄存器信息

2.a:使用汇编的格式在内存中写入一条机器指令。

3.p/t指令:执行内存单元中的指令。

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

用户模式:

1

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

内核模式:

1

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

参数:

  • Thread
    指定要继续执行的线程。所有其他线程都被冻结。只能在用户模式下指定线程。
  • r

    打开和关闭寄存器和标志的显示。默认情况下,将显示寄存器和标志。可以使用pr、tr或.prompt_allow-reg命令禁用寄存器显示。所有这三个命令都控制着相同的设置,您可以使用它们中的任何一个来覆盖以前对这些命令的任何使用。也可以使用l-os命令禁用寄存器显示。此设置与其他三个命令不同。要控制显示哪些寄存器和标志,请使用rm (Register Mask)命令。

  • StartAddress
    指定执行应开始的地址。如果不使用startaddress,则从指令指针指向的指令开始执行
  • Count
    指定停止前要单步执行的指令或源行数。每个步骤在调试器命令窗口中显示为单独的操作。默认值为1。
  • Command
    指定要在执行步骤后执行的调试器命令。此命令在显示标准p结果之前执行。如果还使用count,则在所有步骤完成后(但在显示最后一步的结果之前)执行指定的命令。

以执行a命令后的程序为例:

WinDbg常用指令_第1张图片

t会进入函数调用中,即call p,会进入入口地址为p的函数中去。
p对于上述情况不会进入函数体,而直接执行call p,并跳跃到下一条指令。

WinDbg常用指令_第2张图片

4.u命令:显示内存中指定程序代码的汇编转换 。 

WinDbg常用指令_第3张图片

5.pc命令:执行程序,直到到达调用指令。

用户模式:

1

[~Thread] pc [r] [= StartAddress] [Count]

内核模式:

1

pc [r] [= StartAddress] [Count]

参数:

  • Thread
    指定要继续执行的线程。所有其他线程都被冻结。只能在用户模式下指定线程。
  • r
    打开和关闭寄存器和标志的显示。默认情况下,将显示寄存器和标志。可以使用pr、tr或.prompt_allow-reg命令禁用寄存器显示。所有这三个命令都控制着相同的设置,您可以使用它们中的任何一个来覆盖以前对这些命令的任何使用。也可以使用l-os命令禁用寄存器显示。此设置与其他三个命令不同。要控制显示哪些寄存器和标志,请使用rm (Register Mask)命令。
  • StartAddress
    指定调试器开始执行的地址。否则,调试器从指令指针指向的指令开始。
  • Count
    指定调试器要停止此命令必须遇到的调用指令数。默认值为1。

内存中汇编代码如下:

执行pc指令后:

WinDbg常用指令_第4张图片 6.pt命令:执行程序,直到达到返回指令。

用户模式:

1

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

内核模式:

1

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

参数:

  • Thread
    指定要继续执行的线程。所有其他线程都被冻结。只能在用户模式下指定线程。
  • r
    打开和关闭寄存器和标志的显示。默认情况下,将显示寄存器和标志。可以使用pr、tr或.prompt_allow-reg命令禁用寄存器显示。所有这三个命令都控制着相同的设置,您可以使用它们中的任何一个来覆盖以前对这些命令的任何使用。也可以使用l-os命令禁用寄存器显示。此设置与其他三个命令不同。要控制显示哪些寄存器和标志,请使用rm (Register Mask)命令。
  • StartAddress
    指定调试器开始执行的地址。否则,调试器从指令指针指向的指令开始。
  • Count
    指定要停止此命令必须遇到的返回指令数。默认值为1。
  • Command
    指定要在执行步骤后执行的调试器命令。此命令在显示标准pt结果之前执行。如果还使用count,则在所有步骤完成后(但在显示最后一步的结果之前)执行指定的命令。

7.d命令:显示指定地址的内容。 

WinDbg常用指令_第5张图片

dd:双字值 (4 个字节) 。默认计数为 32 Dword (128 字节) 。

WinDbg常用指令_第6张图片

db:字节值和 ASCII 字符。 每个显示行显示行中第一个字节的地址,后跟多达16个十六进制字节值。 字节值后跟对应的 ASCII 值。 第八个和第九个十六进制值由连字符分隔 ( ) 。 所有非打印字符(如回车符和换行符)都作为句点 ( 显示。 ) 。 默认计数为128字节。

WinDbg常用指令_第7张图片

dp:指针大小的值。 此命令等效于 dd 或 dq,具体取决于目标计算机的处理器体系结构是否分别为32或64。 默认计数为 32 Dword 或16个四字 (128 字节) 。WinDbg常用指令_第8张图片

 8.dt:显示有关局部变量、全局变量或数据类型的信息。 这会显示有关简单数据类型以及结构和联合的信息。

你可能感兴趣的:(c语言,开发语言,后端)