2012-01-03 15 views
0

ダンプファイルがNullReferenceExceptionを報告しています。私はどのメソッドがこの例外を投げているとしてstacktraceを見ることができます。このメソッド自体は長いもので、たくさんのことをやっていますが、実際にはどのオブジェクトがnullであるのか判断できるのでしょうか?どのオブジェクトがNullReferenceExceptionを引き起こしているか

答えて

3

NullReferenceExceptionは、がオブジェクトのがないことを示します。ヌルオブジェクトとは何もありません。 変数がnullか、より正確にはの式がnullと評価されたとします。いいえ、それを示すものはありません。

デバッグビルドを使用している場合は、スタックトレースに行番号が表示されます。これは、個々のステートメントにピン番号を固定するのに役立ちます。リリースビルドを使用している場合は、おそらく行番号がありません。これは、メソッドを短く甘く保つ理由の多くの1つです。また

、あなたは...あなたはもちろんの良い指標を与えるべきであること、

+0

私は、(!dso、!dumpilまたは!uまたはいくつかの他の命令を介して)実行された最後の命令である、何らかの決定があるかもしれないと考えていましたか? –

+0

@palmsnow:わかっていない。 *より多くの情報を得るためのwindbg特有の方法がありますが、個人的には、あなたのコードをより簡単に診断できるようにするつもりです。何らかの形でシリアライズされた例外オブジェクトがある場合(テキストに変換されたものではなく)、*可能な情報があります。 –

3

をwindbgのを使用していて、例外が発生したときに、それが壊れる作ることができれば!sosex.mkあなたILを与えるだろうがでオフセット失敗のポイント。この情報は、何が起こっているかを見るために、1つまたは複数の分解方法と組み合わせて使用​​できます。 !sos.U、!sos.dumpilまたは!sosex.mufは、あなたのためにメソッドを逆アセンブルし、失敗した場所のコードを検査できるようにします。関連するフィールド、地域または引数を最適化されたコードで検索するには、!sos.dsoまたは!sosex.mdsoを使用してスタック上のオブジェクトとレジスタ内のオブジェクトをダンプし、調査作業を行う必要があります。 !sosex.mdsoは、出現回数またはいくつかのフィルタリングメカニズムによって出力を制限することができます。

関連する問題