2010-04-07 171 views
7

我正在开发一个发生StackOverflowException的.Net 2.0应用程序。有没有办法在应用程序中止之前/期间打印/记录堆栈跟踪? 这是一个长时间运行的服务器端进程,在调试器下很难执行。 我知道StackOverflowException不能被捕获。如何打印StackOverflowException的堆栈跟踪

+0

当它崩溃时它会生成崩溃转储吗?如果是这样可能会有所帮助http://blogs.msdn.com/tess/archive/2008/03/31/net-case-study-stackoverflow-exception-when-using-a-complex-rowfilter.aspx – 2010-04-07 09:58:05

+0

你也不会说什么样的应用程序。如果它是一个web应用程序,我认为你需要使用IIS调试工具包(虽然我不知道IIS7) – 2010-04-07 10:38:31

回答

3

使用ADPlus(从Windows调试工具)在崩溃时强制转储。

E.g.

adplus -hang -pn <process name> -o <dump file> 
+0

CW:随意扩大这与细节(我不必手)。虽然这不包括“申请中止之前”标准,但我认为这不可能。 – Richard 2010-04-07 10:05:27