我们有一个大型的 ASP.NET 应用程序,它偶尔会因为StackOverflowException
s 崩溃。因为.NET 不能很好地处理这些问题,所以我们只能在没有任何正常异常日志和堆栈跟踪的情况下进行事后调试。一旦我们找到问题发生的位置,通常很容易解决;困难的部分是指出错误发生在代码库的哪个位置。
我们在崩溃后获得的进程转储文件似乎对这项工作有很大帮助,但到目前为止,我们一直无法弄清楚如何最好地使用它。您可以(非常、非常、缓慢地)使用 Visual Studio“调试”该过程,但这基本上需要永远加载 MSFT 符号,然后不会为我们的应用程序 DLL 加载符号(因此您看不到有趣的部分调用堆栈)。
似乎必须有一个简单的方法:
- 故障转储文件
- 设置的托管应用程序 DLL/PDB
到完整的托管调用堆栈;任何人都可以描述(或指向教程)这样做(使用 VS、WinDbg 或任何其他工具)吗?