0

.NET 3.5 で作成されたアプリケーションがあります。このアプリは、EventViewer で次のエラーが発生する 1 つ (動作することを望んでいたもの:/) を除いて、すべてのシステムで動作します。

========================

Event Type: Error
Event Source:   .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID:   5000
Date:       1/28/2011
Time:       8:22:07 AM
User:       N/A
Computer:   MGx12-Production
Description:
EventType clr20r3, P1 Sync.exe, P2 1.0.0.0, P3 4d42d290, P4 mscorlib, P5 2.0.0.0, P6 492b834a, P7 df, P8 b, P9 system.argumentnullexception, P10 NIL.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 63 00 6c 00 72 00 32 00   c.l.r.2.
0008: 30 00 72 00 33 00 2c 00   0.r.3.,.
0010: 20 00 73 00 63 00 72 00    .s.c.r.
0018: 65 00 65 00 6e 00 7e 00   e.e.n.~.
0020: 31 00 2e 00 73 00 63 00   1...s.c.
0028: 72 00 2c 00 20 00 31 00   r.,. .1.
0030: 2e 00 30 00 2e 00 30 00   ..0...0.
0038: 2e 00 30 00 2c 00 20 00   ..0.,. .
0040: 34 00 64 00 34 00 32 00   4.d.4.2.
0048: 64 00 32 00 39 00 30 00   d.2.9.0.
0050: 2c 00 20 00 6d 00 73 00   ,. .m.s.
0058: 63 00 6f 00 72 00 6c 00   c.o.r.l.
0060: 69 00 62 00 2c 00 20 00   i.b.,. .
0068: 32 00 2e 00 30 00 2e 00   2...0...
0070: 30 00 2e 00 30 00 2c 00   0...0.,.
0078: 20 00 34 00 39 00 32 00    .4.9.2.
0080: 62 00 38 00 33 00 34 00   b.8.3.4.
0088: 61 00 2c 00 20 00 64 00   a.,. .d.
0090: 66 00 2c 00 20 00 62 00   f.,. .b.
0098: 2c 00 20 00 73 00 79 00   ,. .s.y.
00a0: 73 00 74 00 65 00 6d 00   s.t.e.m.
00a8: 2e 00 61 00 72 00 67 00   ..a.r.g.
00b0: 75 00 6d 00 65 00 6e 00   u.m.e.n.
00b8: 74 00 6e 00 75 00 6c 00   t.n.u.l.
00c0: 6c 00 65 00 78 00 63 00   l.e.x.c.
00c8: 65 00 70 00 74 00 69 00   e.p.t.i.
00d0: 6f 00 6e 00 20 00 4e 00   o.n. .N.
00d8: 49 00 4c 00 0d 00 0a 00   I.L.....
================================================

ご覧のとおり、このエラーは mscorlib で発生します。これらの指示に従おうとしましたが、適切なダンプ ファイルが見つからないようです。

アプリを単独で実行すると、アプリは正常に動作することに言及する必要があります。ネイティブの Windows コンテナーによって呼び出された場合にのみ失敗します。したがって、上記の方法は実際には機能しません。

そうは言っても、Windowsデバッグツールをインストールしたところ、%TEMP%フォルダーにdmpファイルが作成されていることがわかります。これを使用してデバッグし、mscorlibの「nullpointer」の原因を確認できると思っていました。残念ながら、この dmp ファイルは、別のプログラムによって使用されているため、ファイルが存在する間、ファイルへのアクセスなし (つまり、コピーや名前の変更なし) で作成されてから数秒後に削除されます。

Windowsレポートツールがdmpファイルを保持する場所を知っている人はいますか? このクラッシュの適切な dmp ファイルはどこにありますか?

これをデバッグするにはどうすればよいですか?

4

1 に答える 1

2

Environment.FailFastを超えてミニダンプを生成または保持するオプションを認識していません。この回答のヒントを使用して、ワトソンログをリバースエンジニアリングできます。しかし、実際には、それは苦痛であり、それほど有益ではありません。AppDomain.CurrentDomain.UnhandledExceptionのイベントハンドラーを記述し、e.ExceptionObject.ToString()の値をログに記録または表示します。取得するスタックトレースは、ほとんどの場合、問題を理解するのに十分です。

于 2011-01-28T17:00:24.520 に答える