Windows驱动程序开发调试工具:WinDBG

  WinDBG是在windows平台下,强大的用户态和内核态,驱动程序开发调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大。它的另外一个用途是可以用来分析dump数据。
  虽然WinDBG也提供图形界面操作来调试驱动程序或内核程序,但它最强大的地方还是有着强大的调试命令,一般情况会结合GUI和命令行进行操作,常用的视图有:”thread”,”stack” 和”command”,其中command视图是默认打开的。 下面简单介绍常用的命令:
  • 查看stack:kb, kp, kP
  • 查看内存:dd,da,db
  • 分析死锁:!cs, !lock
  • 自动分析:!analyze
  • 加载dll: .load, .reload
  • 显示加载的模块信息: lm, lmvm

1) WinDBG不是专门用于调试.Net程序的工具,它更偏向于底层,可用于内核和驱动调试。进行普通的.Net程序调试还是使用微软专为.Net开发的调试工具MDBG更方便一些。但是WinDBG能看到更多的底层信息,对于某些特别疑难的问题调试有所帮助,例如内存泄漏等问题。

2)扩展命令中最有用的命令是!help命令J,使用该命令可以列出所有可用的扩展命令列表,使用!help [SOSCommandName]可以查看每一个具体扩展命名的详细使用说明,例如!help dumpheap就可以查看!dumpheap这个扩展命名的具体使用方法。多多利用!help命名可以很快上手SOS。

WinDBG扩展阅读:

此条目发表在 windows驱动开发 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论