Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

WinDbg

帖子发起人: 破茧   发起时间: 2011-05-02 23:52 下午   回复: 13

Print Search
帖子排序:    
   2011-05-02, 23:52 下午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Broken Heart [U] Local Kernel调试的Symbols问题
Reply Quote

张老师,您好!

系统: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 上午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: Local Kernel调试的Symbols问题
Reply Quote
尝试下面的命令:
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 下午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题

附件: Lkd.JPG
Reply Quote

张老师,您请看附件!

这是尝试命令"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 下午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题
Reply Quote

张老师,您好

我查到如下

"/nopae 禁用物理地址扩展,并且强制boot loader加载非PAE版本的Windows 内核。"  "/nopae 选项只在Windows Server 2003 SP1Windows 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 上午
WANGyu 离线,最后访问时间: 2012/9/10 3:34:00 王宇

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: Local Kernel调试的Symbols问题
Reply Quote
您的问题和多核 / PAE等导致的内核文件差异没有本质联系,还是应该尝试让 Windbg 下载到正确的符号。 :)
IP 地址: 已记录   报告
   2011-05-04, 10:27 上午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题
Reply Quote
王先生,您好!

我已下载"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 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: Local Kernel调试的Symbols问题
Reply Quote
找一下c:\windows\minidump目录里看是否有以前产生的dump文件...
如果设置了符号服务器,那么没有必要安装那个符号包了
禁用PAE后,错误信息一样?
如果还有问题,那么把!lmi列出来的pdb文件传上来

IP 地址: 已记录   报告
   2011-05-04, 21:49 下午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题
Reply Quote

张老师,您好

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 下午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题
Reply Quote

张老师

论坛提示:您的帖子已经被保存,附件因为超过规定大小所以没有上传.

我机器用!lmi nt列出的"ntkrpamp.pdb"有1.47mb.


IP 地址: 已记录   报告
   2011-05-05, 12:13 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: Local Kernel调试的Symbols问题
Reply Quote
compress or upload to some web drive...
IP 地址: 已记录   报告
   2011-05-05, 21:39 下午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题

附件: ntkrpamp.rar
Reply Quote

张老师

请查看附件,谢谢!


IP 地址: 已记录   报告
   2011-05-16, 20:55 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: Local Kernel调试的Symbols问题
Reply Quote
这个PDB确实没有包含_LIST_ENTRY结构的符号
如果一定要调试这个版本,那么可以尝试给WINDBG小组写信,或者通过OSR的调试新闻组反馈
或者将内核更新到新的版本...

IP 地址: 已记录   报告
   2011-05-23, 11:08 上午
KENW 离线,最后访问时间: 2011/5/2 4:34:19 破茧

发帖数前150位
注册: 2011-05-02
发 贴: 8
Re: Local Kernel调试的Symbols问题
Reply Quote
谢谢张老师

我装了个vmware+WINXP SP2以后就正常了。看来是SP3问题。

再次感谢张老师您的解惑
IP 地址: 已记录   报告
   2012-07-24, 14:59 下午
kazi21com 离线,最后访问时间: 2012/7/24 6:58:38 我是一个大熊猫

无等级
注册: 2012-07-24
发 贴: 1
Re: Local Kernel调试的Symbols问题
Reply Quote
这个问题我也遇到了 只能换系统才能解决嘛
为什么我本机内核调试可以

IP 地址: 已记录   报告
高端调试 » 软件调试 » WinDbg » Re: Local Kernel调试的Symbols问题

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.