2

ダンプファイルがあり、WinDbgでロードしました。

!pe(出力例外)を使用して、例外(null参照例外)を確認しました。ただし、最大100行を含むメソッドを示しています。

例外が破棄される行を見つけることは可能ですか?

    0:000> !pe
   Exception object: 00000000822e7e28
    Exception type:   System.NullReferenceException
    Message:          Object reference not set to an instance of an object.
    InnerException:   <none>
    StackTrace (generated):
SP               IP               Function
00000000001FBDC0 000007FF06468F6B Utils.Page.OnActivate()+0x6db

+ 0x6dbはどういう意味ですか?

どうもありがとう、ダン

編集:

ソースファイルはありますが、この問題を再現できません。だから私は正確な線を知りたいのです

EDIT2 :(!uコマンドを使用するようにブライアンが提案した後)

!uコマンドを使用した後のスナップショットを次に示します。

    0:000> !u 000007ff03af9a38
   Normal JIT generated code
  Page.OnActivate()
  Begin 000007ff06468890, size 84b
  000007ff`06468890 53              push    rbx
  000007ff`06468891 55              push    rbp
  000007ff`06468892 56              push    rsi
  000007ff`06468893 57              push    rdi
  000007ff`06468894 4883ec78        sub     rsp,78h
  000007ff`06468898 488d6c2430      lea     rbp,[rsp+30h]
  000007ff`0646889d 488bf2          mov     rsi,rdx

等々...

06468890(最初のポインタ)に6dbを追加するのは正しいですか?

4

1 に答える 1

7

+0x6dbOnActivate例外がスローされたメソッドへのオフセットです。行番号が表示されないのは、正しいPDBファイルがないためです。PDBファイルがある場合は、これらを含めるようにパスを設定します。

そうしない場合でも、例外が発生した場所をかなり正確に示すことができます。この!uコマンドは、コードの.NET注釈付きバージョンを一覧表示し、そこからソースコード内の場所を取得できるはずです。コマンドの使用の詳細については、この回答を参照してください!u

于 2012-10-10T15:34:44.380 に答える