3

每次抛出特定的clr 异常时,我都会尝试使用 windbg 创建转储。

我知道!soe,但我不希望执行停止,我只是希望它创建一个转储。

这可能吗?

如果无法使用windbg,我也愿意接受其他关于如何实现这一目标的建议......

4

2 回答 2

2

尝试procdump。也许使用选项“-e 1”来捕获第一次机会异常的转储。

编辑:

对于特定的例外情况,您可能需要 ADPlus。例如看这篇文章

更多编辑:

没有 ADPlus 也可以:在 Windbg -> Debug -> Event Filters 中,将 CLR exception 设置为ignored - not processed。单击命令按钮,然后输入以下内容(当然还有您的特定异常类型):

!soe  System.ArgumentNullException 1;.if(@$t1==0) {g} .else {.dump /ma /u d:\ANE.dmp}
于 2012-07-04T09:20:14.437 回答
1

In WinDbg, 'Debug > Event Filters', find the specifc exception you want to execute a command for or add a numbered exception.

Then click 'Commands' and enter:

.dump /ma c:\mydump.dmp

in the command box, you can even enter a second command for second chance exception handling and this will write a full mini-dump when the exception event is triggered.

于 2012-07-04T09:58:35.000 回答