|
|
|
|
|
|
|
WinDbg
帖子发起人: 破茧 发起时间: 2011-05-02 23:52 下午 回复: 13
|
帖子排序:
|
|
|
|
2011-05-02, 23:52 下午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Local Kernel调试的Symbols问题
|
|
|
|
张老师,您好!
系统:WINXP SP3; WinDBG 6.11; _NT_SYMBOL_PATH=D:\MyLocalSymbols;SRV*D:\MyLocalSymbols* http://msdl.microsoft.com/download/symbols; ("D:\MyLocalSymbols"是存放Symbols的本地文件夹,已下载并解压"WindowsXP-KB936929-SP3-x86-DEBUG-symbols")
lkd> !lmi nt Loaded Module Info: [nt] Module: ntkrpamp Base Address: 804d8000 Image Name: ntkrpamp.exe Machine Type: 332 (I386) Time Stamp: 4a7834fd Tue Aug 04 21:17:49 2009 Size: 20d000 CheckSum: 1f347d Characteristics: 12e Debug Data Dirs: Type Size VA Pointer CODEVIEW 25, 9ff0, 95f0 RSDS - GUID: {67723BD9-C3F4-4354-9FA8-B9FFFAEC8C9B} Age: 1, Pdb: ntkrpamp.pdb Image Type: MEMORY - Image read successfully from loaded memory. Symbol Type: PDB - Symbols loaded successfully from symbol server. d:\mylocalsymbols\ntkrpamp.pdb\67723BD9C3F443549FA8B9FFFAEC8C9B1\ntkrpamp.pdb Load Report: public symbols , not source indexed d:\mylocalsymbols\ntkrpamp.pdb\67723BD9C3F443549FA8B9FFFAEC8C9B1\ntkrpamp.pdb
lkd> !process 0 0 **** NT ACTIVE PROCESS DUMP **** ********************************************************** *** Your debugger is not using the correct symbols *** *** In order for this command to work properly, your symbol path *** *** must point to .pdb files that have full type information. *** *** Certain .pdb files (such as the public OS symbols) do not *** *** contain the required information. Contact the group that *** *** provided you with these symbols if you need this command to *** *** work. *** *** Type referenced: nt!_LIST_ENTRY *** ********************************************************** Unable to read _LIST_ENTRY @ 805648b8
我公司的笔记本(WINXP SP2)用同样方法却能"lkd>!PROCESS 0 0".在多日的网上找资料和阅读一些文章后,我注意到不同之处:
lkd> !lmi nt Loaded Module Info: [nt] Module: ntoskrnl
我那台不能"lkd>!PROCESS 0 0".的是ntkrpamp,而公司的/网上及文献的是ntoskrnl.不知道是否因为这个关键之处.
而我也试过删掉D:\MyLocalSymbols里ntkrpamp.pdb文件夹和exe文件夹里的ntkrnlmp.pdb,重新启动WINDBG后
DBGHELP: Symbol Search Path: d:\mylocalsymbols;srv*d:\mylocalsymbols* http://msdl.microsoft.com/download/symbols SYMSRV: d:\mylocalsymbols\ntkrpamp.pdb\67723BD9C3F443549FA8B9FFFAEC8C9B1\ntkrpamp.pdb not found SYMSRV: ntkrpamp.pdb from http://msdl.microsoft.com/download/symbols: 432396 bytes - copied DBGHELP: nt - public symbols d:\mylocalsymbols\ntkrpamp.pdb\67723BD9C3F443549FA8B9FFFAEC8C9B1\ntkrpamp.pdb
WINDBG竟然自动下载ntkrpamp.pdb
当然结果也是, lkd> !lmi nt Loaded Module Info: [nt] Module: ntkrpamp
同样无法"lkd>!PROCESS 0 0". (!PROCESS只是某个命令,主要想练习您书中的实验.)
非常困惑,恳请张老师能为我解惑!!!谢谢.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-03, 00:46 上午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
尝试下面的命令:
dt nt!_LIST_ENTRY
+0x000 Flink : Ptr32 _LIST_ENTRY
+0x004 Blink : Ptr32 _LIST_ENTRY
.chain
kdexts: image 6.1.7015.0, API 1.0.0, built Thu Feb 26 09:54:56 2009
[path: C:\windbg\WINXP\kdexts.dll]
对于公共调试符号,类型信息是先剔除再加回,但是像_LIST_ENTRY这样重要的结构定义通常不会遗漏的
用下面这个命令生成一个mini dump发上来看一下
.dump /m m.dmp
也可以尝试修改启动参数,比如在Boot.ini中加入/nopae 使用不同的内核文件,看结果如何
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-03, 22:18 下午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Re: Local Kernel调试的Symbols问题
附件: Lkd.JPG
|
|
|
|
张老师,您请看附件!
这是尝试命令"dt nt!_LIST_ENTRY"后的输出,还是不行.
尝试命令".chain",输出倒是跟您写的差不多.
无法在lkd>下".dump /m m.dmp",请提示如何生成mini dump发给您看.
也尝试了修改启动参数,在Boot.ini中加入/nopae 使用不同的内核文件"multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /nopae".不得重启后依然不行.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-03, 23:04 下午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
张老师,您好
我查到如下
"/nopae 禁用物理地址扩展,并且强制boot loader加载非PAE版本的Windows 内核。" "/nopae 选项只在Windows Server 2003 SP1和Windows XP SP2支持。在Windows Vista和之后的Windows中,使用BCDEdit的PAE成员和ForceDisable值。"
再有,刚好我那台能"dt nt!_LIST_ENTRY"的笔记本就是WINXP SP2, lkd> !lmi nt Loaded Module Info: [nt] Module: ntoskrnl
这台不行的是WINXP SP3/ Module:ntkrpamp.
您书里的P186也提到"ntkrpamp.exe"和"ntoskrnl.exe"的区别,但我未能领会,请提示怎么改变内核文件.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-04, 01:11 上午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
您的问题和多核 / PAE等导致的内核文件差异没有本质联系,还是应该尝试让 Windbg 下载到正确的符号。 :)
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-04, 10:27 上午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
王先生,您好!
我已下载"WindowsXP-KB936929-SP3-x86-DEBUG-symbols"并解压。
再有,我后来也用symchk.exe再次验证并下载symbols--“symchk /r c:\windows\system32 /s SRV*D:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols--下载 Windows\System32 文件夹中所有组件的符号文件”
请帮忙看看我的symbols还有什么其他问题。谢谢
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-04, 14:08 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
找一下c:\windows\minidump目录里看是否有以前产生的dump文件...
如果设置了符号服务器,那么没有必要安装那个符号包了
禁用PAE后,错误信息一样?
如果还有问题,那么把!lmi列出来的pdb文件传上来
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-04, 21:49 下午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
张老师,您好
1. "找一下c:\windows\minidump目录里看是否有以前产生的dump文件... "
我机器的c:\windows下没有minidump目录.
2. "禁用PAE后,错误信息一样?"
尝试了修改启动参数,在Boot.ini中加入/nopae--"multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /nopae". 重启后依然不行.
3. "如果还有问题,那么把!lmi列出来的pdb文件传上来"
请老师查看附件.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-04, 21:54 下午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
张老师
论坛提示:您的帖子已经被保存,附件因为超过规定大小所以没有上传.
我机器用!lmi nt列出的"ntkrpamp.pdb"有1.47mb.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-05, 12:13 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
compress or upload to some web drive...
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-05, 21:39 下午
|
破茧
注册: 2011-05-02
发 贴: 8
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-16, 20:55 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
这个PDB确实没有包含_LIST_ENTRY结构的符号
如果一定要调试这个版本,那么可以尝试给WINDBG小组写信,或者通过OSR的调试新闻组反馈
或者将内核更新到新的版本...
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2011-05-23, 11:08 上午
|
破茧
注册: 2011-05-02
发 贴: 8
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
谢谢张老师
我装了个vmware+WINXP SP2以后就正常了。看来是SP3问题。
再次感谢张老师您的解惑
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2012-07-24, 14:59 下午
|
我是一个大熊猫
注册: 2012-07-24
发 贴: 1
|
Re: Local Kernel调试的Symbols问题
|
|
|
|
这个问题我也遇到了 只能换系统才能解决嘛 为什么我本机内核调试可以
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » WinDbg » Re: Local Kernel调试的Symbols问题
|
|
|
|
|
|