Sysinternals ProcDump -e использование

Я довольно новичок в использовании утилиты procdump.exe и пытаюсь выяснить, почему процесс, который я запускаю, аварийно завершает свою работу, не генерируя аварийный дамп или записывая необработанное исключение в журнал. Я использую следующую командную строку

procdump.exe -e -t pid C: \ DumpFiles \ Process.dmp

Поскольку я выполняю это в отношении процесса, в котором возникают проблемы, я не вижу сгенерированного файла дампа, хотя я часто вижу следующее исключение:

Исключение: E0434352.CLR

Согласно одному веб-сайту, на который я смотрел, это конкретное исключение генерируется всякий раз, когда есть необработанное исключение, которое не особенно полезно для меня. Кроме того, я не уверен, насколько правдива эта информация, которую я получил. Мне было интересно, есть ли способ заставить procdump выплевывать файл дампа, когда он сталкивается с таким исключением, чтобы я мог видеть, что происходит.

Заранее спасибо!

2 ответа

E0434352.CLR - это код ошибки, представляющий исключения.NET, который используется CLR, поэтому я предполагаю, что ваш процесс является управляемым кодом. Добавление ключа -g (запускается как собственный отладчик в управляемом процессе) предоставит вам информацию, которую вы ищете.

Как сказал @yonisha, "E0434352.CLR" - это общее сообщение для всех исключений.NET.

Но вы можете проверить конкретное исключение.NET, если добавите значение "1" в опцию "-e" следующим образом:

procdump -e 1 -f "" [Your Process ID]

После применения этой опции procdump напечатает E0434352.CLR как исключение.NET, как это.

[14:54:53] Exception: E0434F4D.System.IO.DirectoryNotFoundException ("Could not find a part of the path 'c:\myfile\test.dat'.")

Как только вы определили, что за исключение.NET, вы можете сбросить его с помощью этих опций.

procdump -ma -e 1 -f "DirectoryNotFoundException" [Your Process ID] c:\temp\test.dmp

Другие вопросы по тегам