WinDBG does not display source lines despite loading private pdb files

I am trying to debug a problem in a native DLL using WinDBG. I believe that my personal characters are loaded, but WinDBG does not display the source lines or parameter information. This is what I observe; Any help would be greatly appreciated!

I have a PDB that, it seems to me, matches the DLL in the character search path. Running lm I see:

01050000 01058000   3NMSMTHR C (private pdb symbols)  e:\ads_symbols\3NMSMTHR.pdb

As stated in "private pdb characters", I expect this to be private pdb.

I also ran symchk and saw the following output:

C:\utils\inetmgr\patch01>"c:\Program Files\Debugging Tools for Windows (x86)\symchk.exe" /v 3nmsmthr.dll /s c:\utils\inetmgr\patch01
[SYMCHK] Searching for symbols to C:\utils\inetmgr\patch01\3nmsmthr.dll in path c:\utils\inetmgr\patch01
DBGHELP: Symbol Search Path: c:\utils\inetmgr\patch01
[SYMCHK] Using search path "c:\utils\inetmgr\patch01"
DBGHELP: No header for C:\utils\inetmgr\patch01\3NMSMTHR.DLL.  Searching for image on disk
DBGHELP: C:\utils\inetmgr\patch01\3NMSMTHR.DLL - OK
DBGHELP: 3NMSMTHR - private symbols & lines
     c:\utils\inetmgr\patch01\3NMSMTHR.pdb
[SYMCHK] MODULE64 Info ----------------------
[SYMCHK] Struct size: 1680 bytes
[SYMCHK] Base: 0x10000000
[SYMCHK] Image size: 32768 bytes
[SYMCHK] Date: 0x4cc1b0f8
[SYMCHK] Checksum: 0x00000000
[SYMCHK] NumSyms: 0
[SYMCHK] SymType: SymPDB
[SYMCHK] ModName: 3NMSMTHR
[SYMCHK] ImageName: C:\utils\inetmgr\patch01\3NMSMTHR.DLL
[SYMCHK] LoadedImage: C:\utils\inetmgr\patch01\3NMSMTHR.DLL
[SYMCHK] PDB: "c:\utils\inetmgr\patch01\3NMSMTHR.pdb"
[SYMCHK] CV: RSDS
[SYMCHK] CV DWORD: 0x53445352
[SYMCHK] CV Data:  I:\usr\bpi\adrutl\3NMSMTHR.pdb
[SYMCHK] PDB Sig:  0
[SYMCHK] PDB7 Sig: {A865C40A-5070-4752-AD1F-CD3087843807}
[SYMCHK] Age: 4
[SYMCHK] PDB Matched:  TRUE
[SYMCHK] DBG Matched:  TRUE
[SYMCHK] Line nubmers: TRUE
[SYMCHK] Global syms:  TRUE
[SYMCHK] Type Info:    TRUE
[SYMCHK] ------------------------------------
SymbolCheckVersion  0x00000002
Result              0x001f0001
DbgFilename
DbgTimeDateStamp    0x4cc1b0f8
DbgSizeOfImage      0x00008000
DbgChecksum         0x00000000
PdbFilename         c:\utils\inetmgr\patch01\3NMSMTHR.pdb
PdbSignature        {A865C40A-5070-4752-AD1F-CD3087843807}
PdbDbiAge           0x00000004
[SYMCHK] [ 0x00000000 - 0x001f0001 ] Checked "C:\utils\inetmgr\patch01\3NMSMTHR.DLL"

SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1

PDB , ( , PDB e:\ads_symbols, , lm). symchk : true , , . , ~ kv, :

00bef2ac 01052a8a 00000000 00000000 00020aa4 3NMSMTHR!BPMThrProcTerm+0x2c0
00bef2cc 100073eb 00bef4d8 00000000 00000000 3NMSMTHR!BPMThrThreadInitName+0x2a

, . , MS CRT, MSFT. , x/t/d 3NMSMTHR! ThreadInitName,

01052a60 <NoType> 3NMSMTHR!BPMThrThreadInitName = <no type information>

, , .frame3 ( ), dv, , :

0:001> .frame
03 00bef2cc 100073eb 3NMSMTHR!BPMThrThreadInitName+0x2a
0:001> dv
Unable to enumerate locals, HRESULT 0x80004005
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.

. . - . , PDB, , . DLL PDB, - , .

!

EDIT:

, :

*** WARNING: Unable to verify checksum for C:\utils\inetmgr\3NMSMTHR.dll

! .lines, , :

*** WARNING: Unable to verify checksum for C:\utils\inetmgr\3NMSMTHR.dll
DBGHELP: 3NMSMTHR - private symbols & lines 
    e:\ads_symbols\3NMSMTHR.pdb
Line number information will not be loaded

, , . : ( 0, . symchk)? PDB , symchk. ?

EDIT2:

, : :

editbin /release 3NMSMTHR.DLL

PE-.

.symopt+0x40

WinDbg, PDB, DLL . , .

... STILL ( dv ), ..

, . , PDB ? ? ? NMAKE .

EDIT3:

DLL PDB DEBUG, , . , : (1) , .. ( )? (2) , dlls + pdbs, - , , . , DLL , - PDB "" ? .

+5
3

.lines?

+4

, . , DLL, .

+2

, :

  • /Zi /ZI ( ).
  • /Oy (Omit Frame Pointers).
  • /DEBUG ( ).
  • ( ) .pdb.

The main thing is to avoid lowering the pointers to the frames; dropping them saves a little time / space in the function call, but it makes stacking very difficult. Please note that you can still get odd stack traces from release collections due to other optimization parameters (especially attachments), but they should still have most of the interesting features.

+2
source

All Articles