0

このダンプを Windbg で解析してみます。ただし、x86 コールスタックは表示できません。次のように構成されたシンボル パス:

srv*D:\dev_head\win_symbols*

コマンドの結果:

0:000> !teb
Wow64 TEB32 at 000000007efdd000
*************************************************************************
***                                                                   ***
***                                                                   ***
***    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: wow64!_TEB32                                  ***
***                                                                   ***
*************************************************************************
error InitTypeRead( wow64!_TEB32 )...
Wow64 TEB at 000000007efdb000
ExceptionList:        000000007efdd000
StackBase:            000000000016fcfc
StackLimit:           000000000016b000
SubSystemTib:         0000000000000000
FiberData:            0000000000001e00
ArbitraryUserPointer: 0000000000230bf0
Self:                 000000007efdb000
EnvironmentPointer:   0000000000000000
ClientId:             00000000000007e0 . 0000000000000ecc
RpcHandle:            0000000000000000
Tls Storage:          0000000000000000
PEB Address:          000000007efdf000
LastErrorValue:       0
LastStatusValue:      0
Count Owned Locks:    0
HardErrorMode:        0


0:000> !load wow64exts
0:000> !sw
The current thread doesn't have an x86 context.

シンボル ファイル wow64.pdb、wow64win.pdb は正しくダウンロード/ロードできますが、wow64cpu.pdb だけはダウンロードできません。この問題は分析の失敗につながりますか?

4

2 に答える 2

0

通常、Microsoft のシンボル サーバーとダウンストリーム (ローカル) キャッシュの場所の両方を構成する必要があります。

ローカル ネットワークで Samba/CIFS サーバーを使用する例 (書き込み可能である必要があります):

symsrv*symsrv.dll*\\sambasrv\symbols*http://msdl.microsoft.com/download/symbols

... または代わりにディスクの場所:

symsrv*symsrv.dll*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols

.symfixWinDbg で使用して、MS シンボル サーバーを既定として設定し、.reloadすべてのシンボル情報を再読み込みします。

という名前のグローバル環境変数を構成するのが一般的です_NT_SYMBOL_PATH

setx /s _NT_SYMBOL_PATH=symsrv*symsrv.dll*\\sambasrv\symbols*http://msdl.microsoft.com/download/symbols

(上記はバッチ/NT スクリプトの構文です ... 参照してくださいsetx /?)

-yまた、私のように、さまざまなコマンド ラインでショートカットを作成する場合 (VM のデバッグなど) は、WinDbgのコマンド ライン スイッチを参照してください。

于 2012-09-24T09:44:36.173 に答える
0

小さなメモリ ダンプ ファイルではなく、フル ダンプがあると想定しています。WOW64CPU プログラム データベースは、シンボル パッケージ ライブラリと共にダウンロードする必要があります。

次のフラグを使用して、特定の pdb のロードを強制します。

.reload /f [name] /i

他の開発者も同様の問題を報告しています。「 64 ビット Windows 2003 Server SP2 から wow64cpu.dll のシンボル ファイルを取得できない」を参照してください。

  • x86 バージョンの WinDBG を実行していますか?

VirtualBox または VMWare 内で実行されている別の Windows バージョンを検討することもできます。

も参照してください

Windows がデバッグ用に作成する小さなメモリ ダンプ ファイルを読み取る方法

于 2012-09-24T09:44:54.020 に答える