我试图在 特定 的 clr 异常被抛出时使用 windbg 创建 dump。我知道 !soe,但我不想停止执行,我只想创建一个 dump。这是否可能?如果不能使用 windbg,我也愿意听取其他建议如何实现...
尝试使用 procdump。可以使用选项“-e 1”在第一次机会异常时捕获转储。 编辑: 对于特定的异常,您可能需要使用ADPlus。例如,请参阅此文章。 更多编辑: 还可以不使用ADPlus:在Windbg中 -> 调试 -> 事件筛选器中,将CLR异常设置为被忽略 - 未处理。单击“Commands”按钮,然后输入以下内容(当然要使用特定的异常类型): !soe System.ArgumentNullException 1;.if(@$t1==0) {g} .else {.dump /ma /u d:\ANE.dmp}
在WinDbg中,选择“调试 > 事件筛选器”,找到您想要执行命令或添加编号异常的特定异常。然后点击“命令”并输入:.dump /ma c:\mydump.dmp 在命令框中,您甚至可以输入第二个命令来进行第二次异常处理,并在触发异常事件时编写完整的迷你转储。