System.ArgumentNullException, P10 NIL и правильные местоположения dmp fie? - PullRequest
0 голосов
/ 28 января 2011

У нас есть приложение, написанное на .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. Я пытался следовать этим инструкциям , но, похоже, не могу найти нужный файл дампа.

Я должен отметить, что приложение работает нормально, когда вы запускаете его самостоятельно; это только терпит неудачу, когда это вызвано собственным контейнером Windows! Таким образом, упомянутый выше метод на самом деле не работает для меня.

Тем не менее, я установил средство отладки Windows и вижу, что в папке %TEMP% создается файл dmp, который я надеялся использовать для отладки и просмотра причины «нулевого указателя» в mscorlib. К сожалению, этот dmp-файл удаляется через несколько секунд после его создания без доступа к файлу (т.е. без копирования или переименования), пока файл существует, поскольку он используется другой программой.

Кто-нибудь знает, где средство отчетности Windows хранит файл dmp? Где я могу найти подходящий файл dmp для этого сбоя?

Как мне отладить это?

1 Ответ

2 голосов
/ 28 января 2011

Я не знаю, как создать или сохранить мини-дамп за пределами Environment.FailFast. Вы можете перепроектировать журнал Уотсона с подсказками в этот ответ . Но на самом деле это больно и не очень информативно. Напишите обработчик события для AppDomain.CurrentDomain.UnhandledException и зарегистрируйте или отобразите значение e.ExceptionObject.ToString (). Трассировка стека, которую вы получите, почти всегда достаточно хороша, чтобы выяснить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...