您的位置:首页 > 其它

WinDbg出现 NT symbols are incorrect, please fix symbols,解决方法

2014-12-11 17:30 141 查看
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,如果找不到,则自动从MS的Symbol
Server上下载所需要的Symbol

5.调试

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

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

(1)进程: !process
[0 0];dt
nt!_eprocess;dt
nt!_kprocess;

(2)线程: !thread;dt
nt!_ethread;dt
nt!_kthread;

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

(4)常见同步对象:lkd> dt
nt!_kevent;lkd> dt
nt!_kmutant;lkd> dt
nt!_ksemaphore;

(5)作业:lkd> !job;会话(lkd> !session);内存管理(lkd> !vm)的命令等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐