3

我对使用 procdump.exe 实用程序相当陌生,我试图找出为什么我正在运行的进程崩溃而没有生成故障转储或在日志中写出未处理的异常。我正在使用以下命令行

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

当我针对有问题的进程运行此程序时,我没有看到任何转储文件正在生成,尽管我多次看到以下异常:

例外:E0434352.CLR

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

提前致谢!

4

2 回答 2

2

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

于 2016-05-29T21:39:38.857 回答
1

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

但是,如果您将“1”值添加到“-e”选项,您可以检查特定的 .NET 异常,如下所示,

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

于 2017-10-28T06:22:35.107 回答