每次特定 clr异常为THROWN时,我都会尝试使用windbg创建转储。
我知道!soe,但我不希望执行停止,我只是想让它创建转储。
这可能吗?
如果使用windbg是不可能的,我也会接受有关如何实现这一目标的其他建议......
答案 0 :(得分:2)
试试procdump。也许使用选项“-e 1”来捕获第一次机会异常的转储。
编辑:
对于特定的例外情况,您可能需要ADPlus。例如,见post。
更多编辑:
没有ADPlus也是可能的:在Windbg中 - >调试 - >事件过滤器,将CLR例外设置为忽略 - 未处理。单击“命令”按钮,然后输入以下内容(当然使用您的特定异常类型):
!soe System.ArgumentNullException 1;.if(@$t1==0) {g} .else {.dump /ma /u d:\ANE.dmp}
答案 1 :(得分:1)
在WinDbg中,'Debug> “事件过滤器”,找到要为其执行命令的特定异常或添加编号的异常。
然后单击“命令”并输入:
.dump /ma c:\mydump.dmp
在命令框中,您甚至可以输入第二个命令进行第二次机会异常处理,这将在触发异常事件时写入完整的小型转储。