WinDbg命令窗口的使用

调试器命令窗口是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帧时移动,即使该窗口已松开。有关固定窗口、选项卡式窗口和浮动窗口的详细信息,请参见定位窗口。

原文地址:https://www.cnblogs.com/yilang/p/11419546.html

时间: 2024-10-15 01:35:47

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

windbg命令详解

DLL 该扩展仅在内核模式下使用,即使它是在Ext.dll中的. Windows NT 4.0 Ext.dll Windows 2000 Ext.dll Windows XP和之后 Ext.dll 注释 如果不提供参数,调试器会列出所有进程,以及时间和优先级统计.这和使用!process @#Process 0 作为CommandString值一样. To terminate execution at any point, press CTRL+BREAK (in WinDbg) or CTRL

命令窗口修改编码,CMD编码修改方法

cmd中的编码方式为ANSI,若中文不是此编码方式则会出现乱码.作为程序员,会经常使用命令窗口查看执行日志,但是有时编码格式不对,大部分都是UTF8,在网上搜索了不少方法,很多没什么用,在这里教一个具体的方法,可以把命令窗口编码方式改为UTF8,接下来按步骤操作 第一步,打开命令窗口cmd 第二步,修改编码方式,输入CHCP 65001 第三步,鼠标放在命令窗口的标题部分右键,在弹出的右键菜单上面选择[属性],在新弹出的窗口选择[字体]选项卡,然后在下面的字体里选择[Lucida Console

Windows系统下如何在cmd命令窗口中切换Python2.7和Python3.6

针对在同一系统下我们可能安装多个版本的Python,毕竟Python2.7与Python3.6还是有不同的需求,但是在用Cmd命令窗口是我们可能默认的系统变量环境是其中一个版本,当我们需要在cmd命令窗口中需要对另外的一个版本进行操作时,我以前只有去更改系统环境变量Python2.7与Python3.6的位置前后顺序,让暂时需要的版本的位置处于环境变量前排..........But ~~这不是一个省心好方法,终于在今天,我get到了一个新的办法,目前感觉还不错. ================

C#中,一个cmd命令窗口执行多条dos命令(有修改,加入执行等待)

原文章标题:C# 程序一个cmd命令窗口执行多条dos命令 原文章地址:http://www.cnblogs.com/visibleisfalse/p/3578886.html 以下代码有修改,标出的红色代码,表示执行一条dos命令后,等待执行完成. public void DoDos(string comd1, string comd2, string comd3) { Process p = new Process();//创建进程对象 try { p.StartInfo.FileName

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

@color 0A @title 添加右键菜单命令 在此处打开命令窗口(W)(带图标) by wjshan0808 @echo off reg add HKCR\Directory\Background\shell\在此处打开命令窗口(W) /v Icon /t reg_expand_sz /d %ComSpec% /f reg add HKCR\Directory\Background\shell\在此处打开命令窗口(W)\command /ve /t reg_sz /d "%ComSpec%

第二章 图形界面还是命令窗口

第二章 图形界面还是命令窗口 对于linux的应用,我想大多数都是用在服务器领域,对于服务器来讲真的没有必要跑一个图形界面.所以我们平时安装linux操作系统时往往是不安装图形界面的.说到这里也许你会有疑问,图形界面还能选择装或者不装? 是的,虽然linux和微软的windows一样同位操作系统,但是它们有一个很大的区别就是windows操作系统的图形界面是和内核一体的,俗称微内核,而linux操作系统图形界面就像一个软件一样,和内核并不是一体的.所以linux你可以选择不安装图形界面,这样不仅

使用Git命令窗口将本地工程提交至远程GitHub

目标: 1.解决的问题是如何通过Git命令窗口将本地工程提交至GitHub. 2.方便园友的同时也方便自己以后解决此类问题. 步骤: 1.首先登陆GitHub网站https://github.com/ 2.新建Repository 3.新建TicketBrushSystem的Repository,其中红框的几处可以根据实际情况自行填写. 成功后会出现如下界面 4.将TicketBrushSystem克隆到本地 4.1.使用Git Bash将工作目录切换到本地的工程文件目录,如,笔者的项目工程位于

通过命令窗口控制mysql服务的启动与停止

mysql服务的启动: 以管理员的身份运行cmd命令窗口,输入命名 net start mysql 如果不是以管理员的身份运行cmd,会提示如下错误 mysql服务的停止: 以管理员的身份运行cmd命令窗口,输入命名 net stop mysql

安装jmeter以后打开会弹出命令窗口提示:WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 x80000002. Windows RegCreateKeyEx(...) returned error code 5.

安装jmeter以后打开会弹出命令窗口提示: WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 x80000002. Windows RegCreateKeyEx(...) returned error code 5. 应该怎么解决: win+R输入regedit 打开REGEDIT.EXE(真恨微软和其regedit.reg). 然后找到HKEY_LOCAL_MACHINE \ SO