/ / windbgが私の機能の半分を分解しないのはなぜですか? - windbg、分解

なぜ私の機能の半分をwindbgで分解しないのですか? - 風袋、分解

バックグラウンド: 私はWindbgを使ってMicrosoftのWinQualサービスからのミニダンプによる原因を診断しています。私はPDBやバイナリがビルドされたときと同じパスの場所に適切に設定するために時間をかけました。

今日、私は問題を理解するために逆アセンブルを見たいと思うミニダンプに出くわしたが、windbgは関数の一部を逆にするだけである。

私の機能は次のようになります。

SomeStruct* STDCALL getThing(int id)
{
S_ASSERT(a);
S_ASSERT(b);
S_ASSERT(c);
SomeStruct* result = fn(id);
S_ASSERT(d);
return result;
}

S_ASSERT 私たちのマクロは最終的に関数を呼び出します int 3 リリースビルドでも命令がヒットします。分解を検査せずに、どれが当たったのか分からない。

windbgを使って、私はジャンプすることができます getThingコールスタックで、逆アセンブリをアクティブにしてコードを確認しますが、逆アセンブリ内でスクロールバックできないのです。 module!getThing 関数のアドレスを取得し、それを書いた逆アセンブリウィンドウ内のアドレス指示の代わりに、私は〜100行を得る?関数の入り口点のようには見えませんが、正しい関数の一部のように見えます。それはこのように見えます:

No prior disassembly possible
module!getThing:
1d7d4aa0 ??              ???
1d7d4aa1 ??              ???
1d7d4aa2 ??              ???
...
1d7d4b0a 087d1c          or      byte ptr [ebp+1Ch],bh
1d7d4b0d 8b4004          mov     eax,dword ptr [eax+4]
1d7d4b10 8bf9            mov     edi,ecx
1d7d4b12 83e11f          and     ecx,1Fh
1d7d4b15 bb01000000      mov     ebx,1
...

では、windbgに残りの分解を示すように説得するにはどうすればよいでしょうか。あるいは、結果を誤解していませんか。 Visual Studio以外にミニダンプをロードできるソフトウェアは他にありますか?

あなたが提供できる洞察をありがとうございました!

回答:

回答№1は2

のコピーがあることを確認してください。 同じ シンボルパス内のDLLまたはexeファイル(.sympathまたはexeパス(.exepath)つかいます !sym noisy そして .reload そしてwindbgがこのdllを見つけたことを確認してください。