运行

2011-02-01 56 views
6

每个线程转储堆栈跟踪是否有.NET(VB.NET或C#)的方式,当异常发生时,转储每个线程的堆栈跟踪?基本上我想重现在Visual Studio的Debug-> Threads窗口中发生的情况,看看发生异常时每个线程正在做什么运行

+0

使用异常的StackTrace属性。 – 2011-02-01 20:17:10

回答

7

如果你想获得托管代码中所有线程的堆栈跟踪,那么你可以尝试mdbg 。看看Managed Stack Explorer它使用MDBG并获取所有线程的堆栈。

1

类似的问题已经在计算器上以前问(如图herehere)和其他论坛。那些较早的讨论集中于获取所有正在运行的线程的列表,但是如果您有这些信息,那么为每个线程获取堆栈跟踪都是微不足道的。

一致的结论是,在.NET中没有办法做到这一点,并且您需要查看构建在调试API上的外部工具,如上面提到的示例Naveen。