Windows调试-WinDbg

Windows调试-WinDbg,windbg,Windbg,我在调试具有核心转储的进程时遇到以下错误 0:000> !lmi test.exe Loaded Module Info: [test.exe] Module: test Base Address: 00400000 Image Name: test.exe Machine Type: 332 (I386) Time Stamp: 4a3a38ec Thu Jun 18 07:54:04 2009 Size: 270

我在调试具有核心转储的进程时遇到以下错误

0:000> !lmi test.exe
Loaded Module Info: [test.exe] 
         Module: test
   Base Address: 00400000
     Image Name: test.exe
   Machine Type: 332 (I386)
     Time Stamp: 4a3a38ec Thu Jun 18 07:54:04 2009
           Size: 27000
       CheckSum: 54c30
Characteristics: 10f  
Debug Data Dirs: Type  Size     VA  Pointer
                 MISC   110,     0,   21000  [Debug data not mapped]
                  FPO    50,     0,   21110  [Debug data not mapped]
             CODEVIEW 31820,     0,   21160  [Debug data not mapped] - Can't validate symbols, if present.
     Image Type: FILE     - Image read successfully from debugger.
                 test.exe
    Symbol Type: CV       - Symbols loaded successfully from image path.
    Load Report: cv symbols & lines 
有人知道错误是什么吗
CODEVIEW 31820,0,21160[调试数据未映射]-无法验证符号(如果存在)。
真正的意思是什么

这个错误是否意味着我无法从可执行文件中读取公共/私有符号

如果不是这样,为什么WinDbg调试器会抛出这种类型的错误

提前感谢,,
Santhosh.

您是否为WinDbg设置了符号路径(请参见步骤2@),您的PDB文件是否在符号路径中


我假设您正在测试一个在调试模式下生成必要PDB文件的可执行文件。

未映射调试数据可能意味着保存调试信息的可执行文件部分尚未映射到内存中。如果这是一个崩溃转储,您的选项是有限的,但如果这是一个实时调试会话。您可以使用WinDbg.pagein命令检索数据。要做到这一点,您需要知道要翻页的地址。如果你用这个!模块开始地址上的dh命令(您可以通过lm看到-在我的示例中,lm mmsvcr90用于msvcr90.dll),您可能会看到类似这样的内容(向下滚动):

这表明调试数据位于距模块起点的偏移量217d0处,长度为29。如果您尝试转储这些字节,您将看到(78520000是模块的起始地址):

如果执行.pagein/p 82218b90 785417d0,然后执行F5,当调试器中断时,您将看到(82218b90是我正在调试的进程的电子进程地址):


现在执行.reload/f msvcr90.dll将加载符号。对于崩溃转储,如果可以找到丢失的0x29字节(可能来自另一个转储),则可以插入它们并以这种方式加载符号。

I使用带-Z7标志的二进制编译。因此,代码视图符号被嵌入到可执行文件中。仍然有必要为可执行文件提供.pdb文件吗?我相信WinDbg支持pdb和旧DBG格式的符号。您可能必须使用-Zi开关()编译二进制文件,并确保包含PDB文件的文件夹位于符号路径中。我需要指出的是,以上是我使用另一个类似调试器的经验,而不是WinDbg。不过,这些概念应该是相似的。
Debug Directories(1)
    Type       Size     Address  Pointer  
    cv           29       217d0    20bd0    Can't read debug data cb=0  
kd> db 78520000+217d0 l29  
785417d0  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????  
785417e0  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????  
785417f0  ?? ?? ?? ?? ?? ?? ?? ??-??                       ?????????  
kd> db 78520000+217d0 l29  
785417d0  52 53 44 53 3f d4 6e 7a-e8 62 44 48 b2 54 ec 49  RSDS?.nz.bDH.T.I  
785417e0  ae f1 07 8c 01 00 00 00-6d 73 76 63 72 39 30 2e  ........msvcr90.  
785417f0  69 33 38 36 2e 70 64 62-00                       i386.pdb.