使用 procdump 监听所有异常不起作用

Using procdump to listen to all exceptions doesn't work

我希望 procdump 监听所有异常(无需指定进程名称或 ID)。

an example given here 开始,我认为使用以下方法应该可行:

procdump -ma -i

...但是尽管我收到以下消息:

ProcDump is now set as the Just-in-time (AeDebug) debugger.

...当某个进程发生异常时,不会转储任何内容。

异常是有意从以下 .NET 代码中抛出的:

using System;

namespace ProcdumpTest
{
    class Program
    {
        static void Main(string[] args)
        {
            if (ShouldAwaitKeyPress(args)) Console.ReadLine();
            Throw();
        }
        static void Throw()
        {
            throw new InvalidOperationException();
        }
        static bool ShouldAwaitKeyPress(string[] args)
        {
            var shouldAwaitKeyPress = false;
            if (args.Length > 0)
            {
               bool.TryParse(args[0], out shouldAwaitKeyPress);
            }
            return shouldAwaitKeyPress;
        }
    }
}

编译它并 运行 使用 ProcdumpTestProcdumpTest false 以便立即抛出异常,或者使用 ProcdumpTest true 以便它等待按键抛出.

感谢@Sebastian 的帮助解决了:

我最初在 C:\Program Files 下安装了 procdump,这需要管理员权限,尽管我在 运行-as-administrator cmd 下执行了 procdump -i -ma,但 procmon 指出转储文件写访问被拒绝。

将目标转储文件夹更改为非管理文件夹后,转储已成功创建:

procdump -ma -i c:\path\to\some\non\admin\folder