Symbolロードに失敗したcase分析

13358 ワード

最新は製品のフィードバックを分析してきたdumpで、分析の過程でいくつかのdumpのsymbolがロードできないことが分かった.割合は小さく、1000個のdumpで、symbolをロードできないのは7個だけです.
使用してもreload/iもロードできません:
 
0:000> .reload /i alibrowser.exe

Unable to load image C:\Program Files\AliBrowser\Alibrowser.exe, Win32 error 0n2

*** WARNING: Unable to verify timestamp for Alibrowser.exe

*** ERROR: Module load completed but symbols could not be loaded for Alibrowser.exe

 
わかってる!Sym noisyはsymbolをロードするプロセス全体を印刷することができます.だから実行!Sym noisyの後に再度実行する.reload/i alibrowser.exe
0:000> !sym noisy

noisy mode - symbol prompts on

0:000> .reload /i alibrowser.exe

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGHELP: D:\Projects\aliyun\CrashTracker\CrashTracker\bin\Release\Alibrowser.exe - file not found

DBGHELP: Alibrowser.exe not found in e:\symbols

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGENG: C:\Program Files\AliBrowser\Alibrowser.exe - Couldn't map image from disk.

Unable to load image C:\Program Files\AliBrowser\Alibrowser.exe, Win32 error 0n2

DBGHELP: No header for Alibrowser.exe. Searching for dbg file

DBGHELP: .\Alibrowser.dbg - file not found

DBGHELP: .\exe\Alibrowser.dbg - path not found

DBGHELP: .\symbols\exe\Alibrowser.dbg - path not found

DBGHELP: Alibrowser.exe missing debug info. Searching for pdb anyway

DBGHELP: Can't use symbol server for
Alibrowser.pdb - no header information available

DBGHELP: Alibrowser.pdb - file not found

*** WARNING: Unable to verify timestamp for Alibrowser.exe

*** ERROR: Module load completed but symbols could not be loaded for Alibrowser.exe

DBGHELP: Alibrowser - no symbols loaded

 
ロードプロセス全体が長く、どこに問題があるのか一目も見えません.しかし、通常のロードプロセスと比較することができます.次のコードはsymbolを正常にロードできるdumpで実行されます.
 
0:024> !sym noisy

noisy mode - symbol prompts on

0:024> .reload /i alibrowser.exe

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGHELP: D:\Projects\aliyun\CrashTracker\CrashTracker\bin\Release\Alibrowser.exe - file not found

DBGHELP: Alibrowser.exe not found in e:\symbols

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGENG: C:\Program Files\AliBrowser\Alibrowser.exe - Couldn't map image from disk.

Unable to load image C:\Program Files\AliBrowser\Alibrowser.exe, Win32 error 0n2

DBGENG: Alibrowser.exe - Partial symbol image load missing image info

DBGHELP: Module is not fully loaded into memory.

DBGHELP: Searching for symbols using debugger-provided data.

*** WARNING: Unable to verify timestamp for Alibrowser.exe

DBGHELP: Alibrowser - private symbols & lines

e:\symbols\Alibrowser.pdb\4A9A20AE996E4E5590C000C41FF40AB81\Alibrowser.pdb

 
両者のロードプロセスをよく比較すると、前の大部分が全く同じで、赤い部分から両者が異なることがわかります.
後者のこの言葉(DBGHELP:Searching for symbols using debugger-provided data)から見ると、symbolをロードするにはdump内のsymbol情報を利用している.
前者のこの情報は失われたり破損したりしてsymbolを正常にロードできない可能性があります.
では、前者がsymbolをロードできるようにするにはどうすればいいのでしょうか.前の大きなログがalibrowserを探しているのが見えます.exe、windbgは最初はalibrowserを見つけたいと思っていました.exeは次にexeの情報を利用して具体的なsymbolを位置決めする.
もし私たちが彼が探している場所にexeを置いたら、ロードに成功するのではないでしょうか.
そこで私はC:Program FilesAliBrowserの下にdumpのバージョンと同じalibrowserを置きました.exe.やはりロードに成功しました.
0:000> .reload /i alibrowser.exe

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGHELP: D:\Projects\aliyun\CrashTracker\CrashTracker\bin\Release\Alibrowser.exe - file not found

DBGHELP: Alibrowser.exe not found in e:\symbols

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGENG: C:\Program Files\AliBrowser\Alibrowser.exe - Mapped image memory

DBGHELP: Alibrowser - private symbols & lines

e:\symbols\Alibrowser.pdb\4A9A20AE996E4E5590C000C41FF40AB81\Alibrowser.pdb

 
C:Program FilesAliBrowserに対応するバージョンのalibrowserが配置されています.exeの後,ほとんど(7のうち6つ)がsymbolを正常にロードできることが分かったが,もう1つはsymbolを正常にロードできない.
この問題のあるdumpのロードプロセスを見てみましょう.
0:004> !sym noisy

noisy mode - symbol prompts on

0:004> .reload /i alibrowser.exe

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGHELP: D:\Projects\aliyun\CrashTracker\CrashTracker\bin\Release\Alibrowser.exe - file not found

DBGHELP: Alibrowser.exe not found in e:\symbols

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://10.1.170.157/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

SYMSRV: E:\Symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe not found

SYMSRV: http://msdl.microsoft.com/download/symbols/Alibrowser.exe/4F0C2D28e9e000/Alibrowser.exe not found

DBGENG: D:\Program Files\ \AliBrowser\Alibrowser.exe - Couldn't map image from disk.

Unable to load image D:\Program Files\ \AliBrowser\Alibrowser.exe, Win32 error 0n2

DBGHELP: No header for Alibrowser.exe. Searching for dbg file

DBGHELP: .\Alibrowser.dbg - file not found

DBGHELP: .\exe\Alibrowser.dbg - path not found

DBGHELP: .\symbols\exe\Alibrowser.dbg - path not found

DBGHELP: Alibrowser.exe missing debug info. Searching for pdb anyway

DBGHELP: Can't use symbol server for Alibrowser.pdb - no header information available

DBGHELP: Alibrowser.pdb - file not found

*** WARNING: Unable to verify timestamp for Alibrowser.exe

*** ERROR: Module load completed but symbols could not be loaded for Alibrowser.exe

DBGHELP: Alibrowser - no symbols loaded

 
 
symbolをロードするときはD:Program FilesブラウザAliBrowserつまりdumpを生成するときalibrowser.exeが存在するパスを探していますが、このユーザーはデフォルトのパスにインストールされていません.だから、デフォルトのパスのalibrowserに置きます.exeは役に立たない.
また、windbgはまずe:symbolsAlibrowserに着きます.exe4 F 0 C 2 D 28 e 9 e 000の中はalibrowserを探しています.exeなので中にalibrowserを入れます.exeでいいです.
0:004> .reload /i alibrowser.exe

DBGHELP: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe - OK

DBGENG: e:\symbols\Alibrowser.exe\4F0C2D28e9e000\Alibrowser.exe - Mapped image memory

DBGHELP: Alibrowser - private symbols & lines

e:\symbols\Alibrowser.pdb\4A9A20AE996E4E5590C000C41FF40AB81\Alibrowser.pdb