Sysinternals ProcDump -e用法

时间:2015-12-10 16:31:30

标签: sysinternals procdump

我是使用procdump.exe实用程序的新手,我试图找出为什么我正在运行的进程崩溃而不生成崩溃转储或向日志写出未处理的异常。我使用以下命令行

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

当我针对有问题的进程运行此操作时,虽然我多次看到以下异常,但我看不到正在生成任何转储文件:

例外:E0434352.CLR

根据我查看的一个网站,只要存在未处理的异常,就会生成该特定异常,这对我来说并不是特别有用。此外,我不确定我得到的信息是多么真实。我想知道是否有办法让procdump在遇到类似的异常时吐出转储文件,这样我才能看到发生了什么。

提前致谢!

2 个答案:

答案 0 :(得分:1)

E0434352.CLR是一个代表.NET异常的错误代码,它由CLR使用,因此我假设您的进程是托管代码。添加'-g' switch(在托管流程中作为本机调试器运行)将为您提供您正在寻找的信息。

答案 1 :(得分:0)

正如@yonisha所说," E0434352.CLR"是所有.NET异常的一般消息。

但是,如果添加" 1"可以检查特定的.NET异常。值" -e"选项如下,

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

应用该选项后,procdump会将E0434352.CLR打印为.NET Exception,如下所示。

[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