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