System.ArgumentNullException,P10 NIL和正确的dmp fie位置?

时间:2011-01-28 15:37:23

标签: c# .net windows argumentnullexception

我们有一个用.NET 3.5编写的应用程序。这个应用程序适用于我们所有的系统,除了一个(我们希望它可以工作的那个:/),它在EventViewer中有以下错误

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

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中。我试图关注these instructions,但我似乎无法找到正确的转储文件。

我应该提一下,当你自己运行应用程序时运行正常;它只在本机windows容器调用时才会失败!所以,上面提到的方法对我来说并不适用。

那说,我确实安装了windows调试工具,我可以看到在%TEMP%文件夹中创建了一个dmp文件,我希望我可以使用它调试并查看导致“nullpointer”的原因。 mscorlib程序。不幸的是,这个dmp文件在创建后几秒内被删除,因为它正在被另一个程序使用,所以当文件存在时无法访问该文件(即没有复制或重命名)。

有谁知道Windows报告工具保存dmp文件的位置?我在哪里可以找到适合此崩溃的dmp文件?

我该如何调试呢?

1 个答案:

答案 0 :(得分:2)

我不知道在Environment.FailFast之外生成或保留minidump的选项。您可以使用this answer中的提示对Watson日志进行反向工程。但是,真的,这是痛苦的,而不是那些信息丰富。为AppDomain.CurrentDomain.UnhandledException编写事件处理程序,并记录或显示e.ExceptionObject.ToString()的值。您将获得的堆栈跟踪几乎总是足以找出问题所在。