下面我们来做一个非常简单的例子,来感受一下WinDbg的使用,以及里面常用的窗口。


首先,在VS里创建一个C++的命令行程序DebugSample, 代码如下,

WinDbg学习笔记二 - 第一个例子,以及常用窗口


然后打开项目的属性窗口,选择Linker -> Debugging, 将Generate Map File改成Yes, 这样在Link的时候会生成map文件。

WinDbg学习笔记二 - 第一个例子,以及常用窗口


Build这个项目。


按笔记一设置好Symbol跟Source路径,点击File -> Open Executable, 找到DebugSample.exe,打开。如果source窗没有自动打开,则用File->Open Source File来手动打开。

WinDbg学习笔记二 - 第一个例子,以及常用窗口


测试断点功能。 在Command窗口输入bl, 这个时候应该没有任何断点显示。

输入bp main, 会看到有一个断点打在了main函数。再次bl, 会显示已经有一个断点了。

WinDbg学习笔记二 - 第一个例子,以及常用窗口


也可以用F9在代码窗口设置断点。


按F5继续运行直到断点的位置,F10单步到cout那行,鼠标可以放着变量上看变量的值。

WinDbg学习笔记二 - 第一个例子,以及常用窗口


也可以用Watch窗口来查看,View->Watch, 输入i, 可以观察i的值。

WinDbg学习笔记二 - 第一个例子,以及常用窗口


点击View -> Call Stack 可以查看callstack,

WinDbg学习笔记二 - 第一个例子,以及常用窗口

Command窗口

点击View->Command打开命令窗口,默认情况下开始调试后,会自动打开。WinDbg学习笔记二 - 第一个例子,以及常用窗口

命令窗口分为三部分,如上图:

1: 主要是用来显示输入跟输出

2: 提示符窗口,显示当前调试器的状态信息。如这里的0:000,第一个0表示当前进程号,后面的三个0表示当前线程号。有时候也会显示kd信息即内核调试信息,如

kd> 单处理器系统

0:kd> 多处理器系统,0表示当前处理器号

*BUSY* 表示调试器正忙。

3: 命令输入窗口

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-17
  • 2021-08-08
  • 2021-04-08
  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-10
  • 2022-12-23
  • 2021-06-04
  • 2022-01-09
  • 2022-12-23
  • 2021-12-05
  • 2021-07-13
相关资源
相似解决方案