2010-09-06 56 views
0

我有一个问题。我的程序在启动时崩溃,没有任何堆栈跟踪。我唯一能看到的是“发送报告给微软”。这只发生在一台PC上。为什么在发生异常时不显示堆栈跟踪?

你能解释我吗为什么有些例外是堆栈跟踪和一些没有?

谢谢。

+0

应用程序是在Debug或Release模式下编译的吗?什么是.NET Framework和操作系统版本?如果您尝试为每个异常保存堆栈跟踪,会发生什么情况,即。使用全局'try/catch'模块并在终止应用程序之前保存异常跟踪? – 2010-09-06 09:12:01

+0

发布模式; .Net Framework 3.5; Windows XP德语;全球try/catch没有得到任何结果.. – Yuriy 2010-09-06 09:24:37

回答

2

默认情况下,未显示堆栈跟踪用于不显示异常。

如果配置了适当安装的调试器(例如正常安装Visual Studio),那么程序崩溃时将提示您启动调试器会话,否则显示“发送报告”选项。

其他任何东西都在执行该程序。

我建议看看类似procdump(Sysinternals)的东西来捕获一个内存转储,从这个转储中VS可以给你一个堆栈跟踪(和更多的细节)来帮助诊断问题。

1

一种可能性是应用程序在加载.Net框架并执行Main()函数之前崩溃。

我会建议检查事件查看器,或运行它在调试器,如windbg下。