WinDbg

Windbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。

      通过使用WMware虚拟一个操作系统还可以在一台机器上实现操作系统的调试。

1.http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx下载Install Debugging Tools for Windows

2.http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx下载Windows Symbol Packages(注意版本)

3.启动Windbg,File->Symbol File Path填写以上Symbols安装路径:后面用%Symbolspath%表示

4.File->Kernel Debug->Local,在下面执行lkd> !process出现以下错误:

NT symbols are incorrect, please fix symbols

       这个可能是%Symbolspath%\exe\ntoskrnl.pdb破损所致。

解决方案:将第3步中的Symbol File Path填写为:

%Symbolspath%

SRV*%Symbolspath%*http://msdl.microsoft.com/download/symbols

按照这样设置,WinDbg将先从本地文件夹D:\Program Files\Symbols中查找Symbol,如果找不到,则自动从MSSymbol Server上下载所需要的Symbol

5.调试

       当运行你的程序时,假如你用VC开发,记得在连接选项中加入生成符号文件的选项

6.用内核扩展命令查看常见内核对象数据结构(每条命令以分号隔开)

1)进程: !process [0 0]dt nt!_eprocessdt nt!_kprocess

2)线程: !threaddt nt!_ethreaddt nt!_kthread

3I/O请求包:  dt nt!_irp!irpfind

4)常见同步对象:lkd> dt nt!_keventlkd> dt nt!_kmutantlkd> dt nt!_ksemaphore

5)作业:lkd> !job会话(lkd> !session);内存管理(lkd> !vm)的命令等。

posted @ 2009-07-08 23:23  Keosu  阅读(2118)  评论(0编辑  收藏  举报