重要
(1) windbg命令分为标准命令(40个左右),元命令(一百多个)和扩展命令。
标准命令提供最基本的调试功能,不区分大小写。如:bp g dt dv k等
元命令提供标准命令没有提供的功能,也内建在调试引擎中,以.开头。如.sympath .reload等
扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中,以!开头。如!analyze等
(2)每个调试命令都各有使用范围,有些命令只能用于内核调试,有些命令只能用于用户调试,有些命令只能用于活动调试。但用户也不必记得这许多,一旦在某个环境下,使用了不被支持的命令,都会显示“No export XXX found”的字样。就拿!process命令来说吧,它显示进程信息,但只能用于内核调试中,如果在用户调试中使用,就是下面的情景:
0:001> !process No export process found
(3) 神奇的Tab键,进行命令补全;ESC清除当前命令输入框中的文本
(4) 选择Command窗口中的内容,然后右击进行复制
(5) 使用;作为分隔符,可以在同一行输入多条命令
(6) 上图红色框中的“0:000”。【0为当前调试会话的进程号;000为调试会话的线程号】
(7) 当命令提示符显示*BUSY*时,即使命令输入框可以输入命令,但输入的命令不会立即被执行,要等windbg空闲时才能执行。
可使用Ctrl + Break来终止一个长时间未完成的命令
(8) 一次可以执行多条命令,命令间用分号;分隔 【如:bp main;bp `view.cpp:120`】,一次打2个断点
(9)按Ctrl + Alt + V开启/关闭verbose Output(详细输出模式)
(10) 为了保证windbg流畅运行,在调试时,尽量不要开启Watch、Locals、Registers、Call Stack、Processes and Threads窗口,直接用command来获取信息