使用 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;
}
}
}
编译它并 运行 使用 ProcdumpTest
或 ProcdumpTest 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
我希望 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;
}
}
}
编译它并 运行 使用 ProcdumpTest
或 ProcdumpTest 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