调试器命令窗口是windbg中的主要调试信息窗口。可以在此窗口中输入调试程序命令并查看命令输出。Windbg的命令窗口是我们进行调试时,主要打交道的窗口。界面如下

对于windbg,“调试器命令窗口”是指标题栏中标记为“命令”的窗口。此窗口包含两个窗格:

  • 在底部的小窗格中,输入命令。
  •  在上面的大窗格中,可以查看命令输出。

打开和关闭命令窗口

通常我们通过打开exe程序、附加到进程或打开dmp文件进行调试时,会自动打开此窗口,但很有可能我们关闭掉了这个窗口,有如下重新打开方式:

  • 点击工具栏按钮
  • 从“视图”菜单中选择“命令”。
  • 快捷键 ALT+1

可以通过如下方式关闭此窗口:

  • 点击窗口右上角的
  • 快捷键ALT+SHIFT+1
  • 热键 CTRL+F4
  • 标题栏右键菜单"Close"

通过上面的方式,我们可以随意关闭打开此窗口。

调试器命令窗口提示

在执行用户模式调试时,“调试器命令”窗口中的提示类似于以下示例。

2:005>

在此示例中,2是当前进程号,005是当前线程号。

如果将调试器附加到多台计算机,则系统号将包括在进程和线程号之前,如下面的示例所示。

3:2:005>

在本例中,3是当前系统号,2是当前进程号,005是当前线程号。
在只有一个处理器的目标计算机上执行内核模式调试时,提示如下所示。

kd>

但是,如果目标计算机有多个处理器,则当前处理器的编号将显示在提示之前,如下例所示。

0: kd>

如果调试器正忙于处理以前发出的命令,则新命令将暂时不被处理,尽管可以添加到命令缓冲区。此外,还可以在windbg中使用菜单命令和快捷键。当windbg处于忙碌状态时,以下指示器将代替提示出现:

*BUSY*

可以使用.pcmd(set prompt command)命令将文本添加到此提示。

命令操作

输入正确的命令,敲Enter键,执行命令。除了这种操作外,我们还可以进行编辑、重复和取消命令的操作。

输入命令时可以使用标准编辑键:
  • 使用向上和向下箭头键查找以前的命令。
  • 使用退格键、删除键、插入键、左箭头键和右箭头键编辑当前命令。
  • 按Esc键清除当前行。
您可以按Tab键自动完成文本输入。在任何调试程序中,输入至少一个字符后按Tab键自动完成命令。反复按Tab键可循环显示文本完成选项,按住SHIFT键并按Tab可向后循环。您还可以在文本中使用通配符,然后按Tab键展开到完整的文本完成选项集。例如,如果键入fo*!ba然后按tab键,调试器将扩展到以“ba”开头的所有符号集,在所有模块中,模块名以“fo”开头。作为另一个例子,您可以通过键入来完成所有包含“prcb”的扩展命令!*prcb,然后按tab。
使用tab键执行文本完成时,如果文本片段以句点(.)开头,则文本与点命令匹配。如果文本片段以感叹号(!)开头,文本与扩展命令匹配。否则,文本将与符号匹配。当使用tab键输入符号时,按tab键完成代码并键入符号和模块名称。如果没有明显的模块名,则完成本地符号和模块名。如果给定了模块或模块模式,则符号完成将完成所有匹配项中的代码和类型符号。
您可以在调试器命令窗口中单击鼠标右键,以自动将剪贴板的内容粘贴到正在键入的命令中。最大命令长度为4096个字符。但是,如果从内核调试程序控制用户模式调试程序,则最大行长度为512个字符。如果您发出的最后一个命令显示一个长的显示,并且您希望将其关闭,在windbg中,使用debug_break或按ctrl+break。在内核模式调试中,可以通过按ctrl+c从目标计算机的键盘取消命令。可以使用.cls(clear screen)命令从调试器命令窗口中清除所有文本。此命令清除整个命令历史记录。在windbg中,可以通过使用edit_clear command output命令或单击Debugger命令窗口快捷菜单上的clear command output来清除命令历史记录。

控制滚动

可以使用滚动条查看以前的命令及其输出。当您使用cdb或kd时,任何键盘条目都会自动向下滚动到调试器命令窗口的底部。在windbg中,每当命令生成输出或按Enter键时,显示器会自动向下滚动到底部。如果要禁用此自动滚动,请单击“视图”菜单上的选项,然后清除“自动滚动”复选框

windbg文本功能

在windbg中,您可以使用一些附加功能来更改文本在调试器命令窗口中的显示方式。您可以在windbg窗口中访问其中的一些功能,一些在调试器命令窗口的快捷菜单中,还有一些通过单击相应的菜单图标来访问。快捷菜单上的“自动换行”命令可打开和关闭自动换行状态。此命令影响整个窗口,而不仅仅是更改此状态后使用的命令。因为许多命令和扩展都会生成格式化的显示,所以我们通常不建议使用自动换行。“编辑添加到命令输出”菜单命令在“调试器命令”窗口中添加注释。快捷菜单上的“添加到命令输出”命令具有相同的效果。可以自定义用于调试器命令窗口的文本和背景的颜色。可以为不同类型的文本指定不同的颜色。例如,可以用一种颜色显示自动寄存器输出,用另一种颜色显示错误消息,用第三种颜色显示dbgprint消息。有关此自定义的详细信息,请参见视图选项。您可以使用windbg调试信息窗口中常见的所有功能,例如自定义字体和使用特殊的编辑命令。

命令窗口的菜单

在标题栏右键弹出如下菜单

  • Add to command output 添加到命令输出向命令输出添加注释,类似于编辑添加到命令输出命令。
  • Clear command output 清除命令输出将删除窗口中的所有文本。
  • Choose text color and recolor selection 选择文本颜色并对所选内容重新着色…打开一个对话框,使您能够选择文本颜色以显示在调试器命令窗口中选择的文本。
  • Word wrap 自动换行打开和关闭自动换行状态。此命令影响整个窗口,而不仅仅是选择此状态后使用的命令。由于许多命令和扩展都会生成格式化的显示,因此不建议使用自动换行。
  • Mark current location 标记当前位置在命令窗口中的当前光标位置设置标记。标记的名称是光标右侧行的内容。
  • Go to mark 转到标记使窗口滚动,使包含所选标记的行位于窗口顶部。
  • Always floating 始终浮动会使窗口保持未停靠状态,即使将其拖到停靠位置。
  • Move with frame “随帧移动”会使窗口在移动windbg帧时移动,即使该窗口已松开。有关固定窗口、选项卡式窗口和浮动窗口的详细信息,请参见定位窗口。

WinDbg命令窗口的使用的更多相关文章

  1. windbg命令详解

      DLL 该扩展仅在内核模式下使用,即使它是在Ext.dll中的. Windows NT 4.0 Ext.dll Windows 2000 Ext.dll Windows XP和之后 Ext.dll ...

  2. Windbg命令脚本流程控制语句详解

    在Windbg命令脚本一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解.这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等. ; (命令分隔符) 分号(:)字符 ...

  3. Windbg命令脚本

    命令脚本,就是将完成某个特定任务的相关命令组合在一起,保存在脚本文件里,加载到Windbg里执行,达到我们的目的.你可以理解为脚本就是一种语言,就像c或者汇编,但是他不需要编译器将其编译为可执行文件, ...

  4. Windbg命令的语法规则系列(一)

    本文介绍使用调试器命令必须遵循的语法规则.使用Windbg调试时,应遵守以下一般语法规则: 您可以在命令和参数中使用大小写字母的任意组合,除非在本节的主题中特别指出. 可以用一个或多个空格或逗号(,) ...

  5. windbg命令行选项

    我们不仅可以通过GUI的方式使用Windbg,还可以通过命令行的方式使用它,且在有些需求和使用场景下,只能使用命令行模式  windbg命令行使用以下语法: windbg [ -server Serv ...

  6. 添加右键菜单命令 在此处打开命令窗口(E)(带图标)

    @color 0A @title 添加右键菜单命令 在此处打开命令窗口(^&E)(带图标) by wjshan0808 @echo off reg add HKCR\Directory\Bac ...

  7. 【GIT】使用Git命令窗口将本地工程提交至远程GitHub

    目标: 1.解决的问题是如何通过Git命令窗口将本地工程提交至GitHub. 2.方便园友的同时也方便自己以后解决此类问题. 步骤: 1.首先登陆GitHub网站https://github.com/ ...

  8. WinDbg 命令三部曲:(一)WinDbg 命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  9. WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

随机推荐

  1. Rsync学习之旅中

    rsync配置文件详解 配置文件内容说明 man rsyncd.conf 全局参数 rsyncd.conf参数 参数说明 uid=rsync 运行rsync守护进程的用户. gid=rsync 运行r ...

  2. 【爬坑笔记】c# 如何通过EF Core读写sql server的类似double型字段

    =============================================== 2019/8/31_第1次修改                       ccb_warlock == ...

  3. Spring Security的RBAC数据模型嵌入

    1.简介 ​ 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在RBAC中,权限与角色相关联,用户通过成 ...

  4. Spring-Cloud之Feign声明式调用-4

    一.Feign受Retrofit.JAXRS-2.0和WebSocket影响,采用了声明式API 接口的风格,将Java Http 客户端绑定到它的内部. Feign 首要目的是将 Java Http ...

  5. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。

    给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 : 给定 ma ...

  6. 【RAC】 RAC For W2K8R2 安装--dbca创建数据库(七)

    [RAC] RAC For W2K8R2 安装--dbca创建数据库(七) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...

  7. 蓝桥杯-基础练习 :java 数列排序问题

    问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000. 输 ...

  8. mysqlbinlog 恢复数据到任意时间点

    创建表,插入数据. ``` mysql> create database binlog; mysql> create table bt(id int); mysql> insert ...

  9. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  10. 快速部署ldap服务

    快速部署ldap服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LDAP概述 .什么是目录服务 ()目录是一类为了浏览和搜索数据二十几的特殊的数据库,例如:最知名的的微软公 ...