wenmo8 发布的文章

在 WinDbg 中,可以查看和编辑内存,通过输入命令或通过使用内存窗口

内存窗口的打开

  • 通过菜单View-->Memory
  • 通过快捷键Alt+5
  • 通过工具栏

使用内存窗口

通过上面方式打开的窗口如下:

 

 

内存窗口显示多个列中的数据。 在窗口的左侧列显示每个行的开始地址。 其余列显示所需的信息,从左到右。 如果选择字节显示格式菜单中,对应于这两个字节的 ASCII 字符将显示在窗口的右侧。

请注意  默认情况下,内存窗口显示虚拟内存。 这种类型是内存的内存的在用户模式下可用的唯一类型。 在内核模式下,可以使用内存选项对话框以显示物理内存和其他数据空间。

在内存窗口中,可以执行以下操作:

  • 若要写入内存,请单击内存窗口并键入新数据。 您可以编辑仅十六进制数据,不能直接编辑 ASCII 和 Unicode 字符。 只要键入新的信息,更改才会生效。

  • 若要查看的其他部分的内存,请使用内存窗口工具栏上PreviousNext按钮()的或按 PAGE UP 或 PAGE DOWN 键。 这些按钮和密钥显示内存立即前面或后面的部分。 如果请求了无效的页面,将显示一条错误消息。

  • 若要导航窗口中,使用向右键、 向左键、 向上键和向下箭头键。 如果使用这些密钥来离开页面时,会显示一个新页面。 在使用这些密钥之前,应调整大小内存窗口,以便它不会包含滚动条。 此大小调整,可区分的实际页边缘和截止窗口。

  • 若要更改正在查看的内存位置,内存窗口顶部的地址框()中输入新的地址。 请注意内存窗口刷新其显示,而您输入一个地址,因此之前已完成键入地址,可获得错误消息。 请注意  中当前基数解释在框中输入的地址。 如果当前的基数不是 16,您应前缀与十六进制地址0x若要更改默认基数,请使用n (设置数量 Base)命令在调试器命令窗口中。 内存窗口本身中的显示不受当前的基数。

  • 若要更改窗口用于显示内存的数据类型,请使用内存窗口工具栏中的菜单显示格式(

    )。 支持的数据类型包括短单词、 双字和四字;short、 long,与四整数和无符号的整数;10 字节、 16 个字节,32 位和 64 字节实数;ASCII 字符;Unicode 字符;和十六进制字节。 十六进制字节的显示内容包括 ASCII 字符和。

内存窗口具有一个包含两个按钮、 菜单和一个框,但与其他命令的快捷菜单的工具栏。 若要访问菜单,请右键单击标题栏或单击窗口 (在右上角附近的图标显示内存窗口工具栏上的快捷菜单按钮的屏幕截图)。 工具栏和快捷菜单包含以下几种选择:

  • (仅工具栏)地址框中,可指定新的地址或偏移量。 此框的确切含义取决于正在查看的内存类型。 例如,如果您正在查看虚拟内存,框中,可指定新的虚拟地址或偏移量。

  • (仅工具栏)显示格式使您能够选择新的显示格式。

  • (工具栏和菜单)Previous(在工具栏上) 和Previous page(在快捷菜单上) 会导致内存要显示的上一节。

  • (工具栏和菜单)Next(在工具栏上) 和Next page(在快捷菜单上) 会导致内存要显示的下一节。

  • (仅限菜单)工具栏工具栏,开启和关闭。

  • (仅限菜单)自动调整列可确保在内存窗口中显示的列数适合内存窗口的宽度。

  • (仅限菜单)停靠取消停靠将使窗口进入或离开停靠的状态。

  • (仅限菜单)移到新停靠内存窗口将关闭,并将其打开新的平台中。

  • (仅限菜单)设置为选项卡形式停靠为窗口中,键入目标作为其他内存窗口的选项卡形式停靠目标设置所选的内存窗口。 与选项卡式的集合中该窗口将自动进行分组之后作为选项卡形式停靠目标中选择一个打开的所有内存窗口。

  • (仅限菜单)始终浮点将使窗口停靠,即使仍拖到停靠位置。

  • (仅限菜单)移动与帧将使窗口移动时移动的 WinDbg 帧,即使在窗口已解除固定。

  • (仅限菜单)属性会打开内存选项对话框中,在本主题中的以下部分中所述。

  • (仅限菜单)帮助有关 Windows 调试工具文档中打开此主题。

  • (仅限菜单)关闭关闭此窗口。

“便笺簿”窗口是一个剪贴板,您可以在其中键入和保存文本。

打开便笺簿

  • 通过菜单View--->Scratch Pad
  • 通过快捷键Alt+8
  • 通过工具栏

使用便笺簿

用上面的方式打开的窗口如下:

 

在草稿板窗口中,可以执行以下操作:

  • 若要在草稿板窗口中键入,单击窗口,然后开始键入的你想要添加的文本此外可以使用标准复制和粘贴功能。 草稿板窗口的内容不会影响调试器的操作。 此窗口存在只是为了帮助进行文本编辑。

  • 如果关闭草稿板窗口中,文本会保留,并重新打开该窗口时可用。 此外可以通过使用文件关联来保存暂存器窗口中的文本。

草稿板窗口具有带其他命令的快捷方式菜单。 若要访问菜单,请右键单击标题栏或单击窗口 (在右上角附近的图标显示的草稿板窗口工具栏快捷方式菜单按钮的屏幕截图)。 此菜单包含以下命令:

 

  • 仅限菜单)将与文件相关联打开一个对话框,可以通过它选择一个文本文件。 选择文件后,在草稿板中的当前文本被清除,并且替换为所选文件中的文本。 与此文件关联暂存器时,所有新文本键入到暂存器保存到文件。 可以结束与文件关联,或者通过选择结束文件关联快捷方式菜单选项或通过关闭并重新打开便笺。

  • (仅限菜单)结束文件关联结束与指定的文本文件的暂存器关联。 便笺中的所有文本,在选择此选项之前先都保存在文件中。 在中键入的所有文本便笺关联结束后不再保存在文本文件中。

  • 停靠取消停靠将使窗口进入或离开停靠的状态。

  • (仅限菜单)移到新停靠关闭便笺并将其打开新的平台中。

  • (仅限菜单)设置为选项卡形式停靠为窗口中,键入目标的暂存器不可用。 

  • 始终浮点将使窗口停靠,即使仍拖到停靠位置。

  • 移动与帧将使窗口移动时移动的 WinDbg 帧,即使在窗口已解除固定。 

  • 帮助有关 Windows 调试工具文档中打开此主题。

  • 关闭关闭此窗口。

命令浏览器窗口显示并存储调试器命令的文本结果。此窗口创建命令引用,使您可以查看特定命令的结果,而无需重新输入该命令。命令浏览器窗口还提供了对存储的命令的导航,因此您可以比使用调试器命令窗口更快地访问命令。

命令浏览器的打开

  • 通过菜单Veiw--->Command Browser
  • 通过快捷键Ctrl+N
  • 通过工具栏

使用命令浏览器

用上面的方式打开的窗口如下:

 

 

在命令浏览器窗口中,可以执行以下操作:

  • 若要输入命令时,其在命令键入。

  • 若要查看以前输入的命令的结果,请使用Start, Prev,Next按钮来滚动查看命令列表,从“命令”菜单中选择前20个命令之一。要查找不是前20个命令之一的命令,请使用“Next”按钮。

命令浏览器窗口具有带其他命令的快捷菜单。 若要访问菜单,请右键单击标题栏或单击窗口 (在右上角附近的图标该按钮将显示命令浏览器窗口中工具栏快捷方式菜单的屏幕截图)。 以下列表介绍了一些菜单命令:

 

 

  • Start, Prev, 和 Next将光标分别移到命令历史记录的开头或上一个或下一个命令。

  • Add to Recent Commands将当前命令放入WinDbg窗口中“视图”菜单的“最近使用的命令”菜单中。最近使用的命令保存在工作区中。

  • Toolbar工具栏,开启和关闭。

  • 移到新停靠关闭命令浏览器窗口并将其打开新的平台中。

  • 始终浮点将使窗口停靠,即使仍拖到停靠位置。

  • 移动与帧将使窗口移动时移动的 WinDbg 帧,即使在窗口已解除固定。 

其他说明

在命令浏览器窗口中输入的命令由调试器引擎执行,而不是由WinDbg用户界面执行。这意味着您不能在命令浏览器窗口中输入像.cls这样的用户界面命令。如果用户界面是远程客户端,则服务器(而不是客户端)执行该命令。在命令浏览器窗口中输入的命令将同步执行,因此在完成输出之前不会显示输出。命令浏览器窗口保存在WinDbg工作区中,但不保存命令历史记录。工作空间中仅保存每个命令浏览器窗口的当前命令。

窗口切换

可以使用以下键盘快捷方式窗口之间进行切换。

效果

CTRL+TAB

调试信息窗口之间切换。 通过重复使用此密钥,你可以扫描通过的所有窗口,而不考虑是否浮动、 停靠本身,或选项卡式停靠窗口的集合的一部分。

Alt+Tab

目前,在您的桌面上的窗口之间切换。 此外可以使用此键盘快捷方式的 WinDbg 帧和已创建任何其他停靠之间进行切换。

菜单命令

您可以使用以下键盘快捷方式而不是鼠标来选择菜单命令。 

等效的菜单

F1

帮助 |内容

F3

编辑 |查找下一个

SHIFT+F3

与相同编辑 |查找下一个,但按反向执行搜索。

Alt + F4

文件 |退出

CTRL+F4

文件 |关闭当前窗口

F5

调试 |转到

SHIFT+F5

调试 |停止调试

CTRL+SHIFT+F5

调试 |重新启动

F6

文件 |附加到进程

F7

调试 |运行到光标处

F8

调试 |单步执行

F9

如果活动窗口的源或反汇编窗口:在当前行中插入断点。 (如果已没有当前行上设置断点,此按钮将移除该断点。)

否则:此时将打开断点像那样的对话框编辑 |断点

ALT+F9

编辑 |断点

F10

调试 |逐过程执行

Ctrl+F10

调试 |运行到光标处

F11

调试 |单步执行

SHIFT+F11

调试 |跳出

ALT+1

此时将打开调试器命令窗口(与相同视图 |命令)。

ALT+SHIFT+1

关闭命令窗口。

ALT+2

此时将打开监视窗口 (与相同视图 |观看)。

ALT+SHIFT+2

关闭监视窗口

ALT+3

此时将打开局部变量窗口(与相同视图 |局部变量)

ALT+SHIFT+3

关闭局部变量窗口。

ALT+4

此时将打开寄存器窗口(与相同视图 |注册)。

ALT+SHIFT+4

关闭寄存器窗口。

ALT+5

打开一个新内存窗口(与相同视图 |内存)。

ALT+SHIFT+5

关闭内存窗口。

ALT+6

此时将打开调用窗口(与相同视图 |调用堆栈)。

ALT+SHIFT+6

关闭调用窗口

ALT+7

此时将打开反汇编窗口(与相同视图 |反汇编)。

ALT+SHIFT+7

关闭反汇编窗口。

ALT+8

打开草稿板 (与相同视图 |Scratch Pad)。

ALT+SHIFT+8

关闭草稿板。

ALT+9

此时将打开进程和线程窗口(与相同视图 |进程和线程)。

ALT+SHIFT+9

关闭进程和线程窗口中。

CTRL + A

编辑 |选择所有

CTRL + C

编辑 |复制

CTRL + D

文件 |打开故障转储

CTRL+E

文件 |打开可执行文件

Ctrl+F

编辑 |查找

CTRL + G

编辑 |转到地址

CTRL+I

文件 |图像文件路径

CTRL+SHIFT+I

编辑 |设置当前指令

CTRL + K

文件 |内核调试

Ctrl+L

编辑 |转到行

Ctrl+O

文件 |开放源代码文件

Ctrl+P

文件 |源文件路径

CTRL+R

文件 |连接到远程会话

Ctrl+S

文件 |符号文件路径

CTRL + V

编辑 |粘贴

CTRL+SHIFT+V

编辑 |评估所选内容

Ctrl+W

文件 |打开工作区

CTRL+X

编辑 |剪切

CTRL + SHIFT + Y

编辑 |显示所选的类型

ALT +\* (数字键盘)

编辑 |转到当前指令

SHIFT + DELETE

编辑 |剪切

SHIFT + INSERT

编辑 |粘贴

CTRL + INSERT

编辑 |复制

CTRL + BREAK

调试 |中断

ALT+DEL

调试 |中断

控制键

以下键盘快捷方式是等效于 KD / CDB 控制键。

等效的菜单KD / CDB 控制密钥

CTRL+ALT+A

调试 |内核连接 |周期的波特率

CTRL + A

CTRL + ALT + D

 

CTRL + D (切换调试信息)

CTRL+ALT+K

调试 |内核连接 |周期初始中断

CTRL + K

CTRL + ALT + R

调试 |内核连接 |重新同步

CTRL+R

CTRL+ALT+V

视图 |详细输出

CTRL + V

CTRL + ALT + W

视图 |显示版本

Ctrl+W

插入符控制

您可以使用以下键盘快捷方式移动插入符号 (^) 中的大多数调试的信息窗口。

插入符号移动

向左一个字符

左侧

右一个字符

右侧

左移字

CTRL+LEFT

正确的单词

CTRL + 向右键

向上移动一行

UP

向下移动一行

向下

向上翻页

Page Up

向下翻页

Page Down

当前行的开头

Home

在行尾

End

该文件的开头

CTRL + HOME

文件的末尾

CTRL + END

请注意  中调试器命令窗口、 向上和向下键浏览通过命令历史记录。 可以使用 INSERT 键以将插入模式下打开和关闭。

文本选择

使用以下键盘快捷方式选择文本。

选择

左侧的字符

SHIFT+LEFT

右侧的字符

SHIFT + 向右键

左侧的单词

SHIFT+CTRL+LEFT

右侧文字

SHIFT + CTRL + 向右键

当前行

SHIFT + 向下插入符号是否在第 1 列

上述行

SHIFT + 向上如果插入点在第 1 列

至行尾

SHIFT + END

到行首

SHIFT + HOME

启动屏幕

SHIFT + PAGE UP

屏幕上向下

SHIFT + Page Down

到文件的开头

SHIFT + CTRL + HOME

到文件的末尾

SHIFT+CTRL+END

文本删除

使用以下键盘快捷方式删除文本。

DELETE

插入符号右边的字符

DELETE

插入符号左边的字符

退格符

所选的文本

DELETE

在 WinDbg 中,源窗口显示已加载到调试器中的源文件。

如何打开源代码窗口

  • 通过菜单File--->Open Source File打开源代码文件,窗口随之打开
  • 通过快捷键Ctrl+O
  • 通过工具栏
  • 设置源路径,调试器实时自动打开

使用源代码窗口

通过上面方式打开的窗口如下:

 

每个源窗口都显示一个源文件的文本。 不能在调试器中编辑源文件。每个源窗口都具有包含附加命令的快捷菜单。 若要访问菜单,请右键单击标题栏,或单击窗口右上角附近显示的图标(显示源窗口工具栏快捷菜单的按钮屏幕截图)。 以下列表描述了一些菜单命令:

 

  • Set instruction pointer to current line 会将指令指针的值更改为对应于当前行的指令。 此命令等效于使用 "编辑 |设置当前指令命令或按 CTRL + SHIFT + I.

  • Edit this file 在文本编辑器中打开源文件。编辑器由WinDiff编辑器注册表信息或WINDBG_INVOKE_editor环境变量的值确定。例如,当WINDBG_INVOKE_EDITOR的值为以下值时。

     
    c:\my\path\myeditor.exe -file %f -line %l