调试器命令窗口是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. AJAX调用数据,滚动到底部

    最近一个小项目里面,需要使用AJAX去拉取数据,并且直接显示最后一条信息,也就是滚动到底部.实现脚本如下: var scrollHeight = $('.txtBox3').prop("sc ...

  2. 多个数据源Mongo连接

    MongoDB :https://my.oschina.net/u/3452433/blog/2999501多个数据源Mongo连接:https://juejin.im/post/5cf73090f2 ...

  3. C#采集摄像头实时画面和抓拍

    在.net中,并没有简单直接的操纵摄像头的类.那么如何简单快捷地采集摄像头的画面,进行抓拍等操作呢?答案是调用SharpCapture!专业采集摄像头画面等数据的类库.下面开始演示关键代码,您也可以在 ...

  4. integer 面试题。

    上面输出的结果是:true true ----------------------------------------------------- false true 因为-128-127是byte的 ...

  5. loj#10012\poj2018 Best Cow Fences(二分)

    题目 #10012 「一本通 1.2 例 2」Best Cow Fences 解析 有序列\(\{a_i\}\),设\([l,r]\)上的平均值为\(\bar{x}\),有\(\sum_{i=l}^r ...

  6. Kubernetes第十一章--部署微服务电商平台

  7. 一 python并发编程之多进程

    一 进程与程序 二 并发与并行 三 同步\异步和阻塞\非阻塞 四 进程的创建 五 进程的终止 六 进程的层次结构 七 进程的状态 八 进程并发的实现 一 进程与程序 什么是进程: 进程的概念:我们知道 ...

  8. JAVA基础之DBUtils与连接池

    利用DBUtils进一步简化JDBC数据库的增删改查的代码,同时利用从连接池中接取连接,进而进行简化和减少资源的消耗! 一.DBUtils: 1.DBUtils就是JDBC的简化开发工具包.需要项目导 ...

  9. Jmeter学习笔记(十七)——jmeter目录结构

    原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一.bin目录examples:  目录中有CSV样例 jmeter.bat  windows的启 ...

  10. 【RAC】 RAC For W2K8R2 安装--共享磁盘的配置(三)

    [RAC] RAC For W2K8R2 安装--共享磁盘的配置(三) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...