首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回溯StackOverflow异常

回溯StackOverflow异常
EN

Stack Overflow用户
提问于 2011-02-10 21:21:45
回答 2查看 565关注 0票数 2

我有一个Umbraco网站,它使用了大量的用户控件,在某个地方,不知何故,stackoverflow异常时不时地会被抛出。因为当测试与用户发布或获取一些信息有关时,SOE不会发生(公平地说:我错过了一些东西)。

我如何追踪我的stackoverflow异常发生在代码中的什么地方?有没有工具可以检查我的源代码,看看我是否遗漏了一些递归方法?或者,我如何调试正在运行的进程?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-10 21:30:19

我发现对应用程序进行调试(有时必须将VS附加到正确的w3wp.exe进程),并将VS设置为上的break是最有帮助的。您仍然可以看到堆栈跟踪,其中充满了相同的一系列方法调用。

票数 0
EN

Stack Overflow用户

发布于 2016-02-10 21:58:51

如果应用程序崩溃,启用此注册表设置可为所有崩溃的应用程序创建崩溃转储:

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
    "DumpFolder"="C:\\TEMP"
    "DumpCount"=dword:00000010
    "DumpType"=dword:00000002

它将在您的C:\Temp文件夹中创建一个崩溃转储。或者在新版本的Visual Studio中打开这个转储文件,它将显示它崩溃的确切代码(就像你在调试时得到一个未处理的异常一样)。

或者是一个非常有用的MS工具,可以满足您所有的转储分析需求:调试诊断工具(https://www.microsoft.com/en-us/download/details.aspx?id=49924)。视频演练:https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-123-DebugDiag-Part-3

这将分析您崩溃的应用程序,并向您显示所有线程及其托管和非托管堆栈跟踪。它可能会准确地指出崩溃的问题以及它发生的位置,以便您可以检查堆栈跟踪。

但是,如果程序没有崩溃,您可以打开任务管理器,右键单击进程并手动创建一个转储文件。通过Debug Diagnostics发送这个转储文件进行崩溃分析,它将显示在应用程序中使用堆栈跟踪发生的最后X个异常。当用户得到一个很好的简化错误消息时,我使用此方法来查找用户应用程序的实际错误。作为从任务管理器创建转储的替代方案,您还可以使用procdump.exe或调试诊断本身来创建有关何时创建转储文件的规则。

我真的相信更多的人应该意识到转储文件和Debug Diagnostics一起发现生产环境中发生的任何错误是多么容易,在生产环境中,我们没有可用的方便开发工具。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4957577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档