【发布时间】:2012-06-21 14:33:23
【问题描述】:
我在没有安装 Visual Studio 的客户端计算机上安装了 C# windows 窗体应用程序。
当应用程序运行时,它会立即崩溃并显示一个对话框,上面写着
ProgramX 已停止工作。一个问题导致程序停止正常工作。请关闭程序。”
对话框上唯一的按钮是“关闭程序”。
我想查看异常消息和堆栈跟踪,以便诊断问题。
我已尝试安装“windbg”附带的 .Net SDK。我已经在 windbg 中运行了该程序,并设法让它说出“CLR 异常”。但是,我无法让 windbg 打印异常消息或堆栈跟踪。由于 DLL 加载消息,即使经过大量摆弄,它也不会加载 SOS 或 PSSCOR2。一定有更简单的方法!
(如果您的答案涉及windbg,请提供详细的分步说明,因为我已经尝试过这种方法但失败了。)
该应用程序是 .Net 3.5 应用程序。该机器安装了 .Net 3.5 和 .Net 4。事件日志中没有任何内容(我可以找到)。
【问题讨论】:
-
编写代码以捕获写入日志文件的所有异常。
-
你有权力改变来源吗? windbg 是一个侦听器应用程序 - 它从各种来源中回显调试语句。没有黑魔法,也无法凭空变出输出。但是,如果您能够修改源代码,那么修改您的应用程序以输出调试消息非常简单。
-
@Pete:也许你的意思是不同的windbg?我拥有的(.Net SDK 附带的)是一个功能齐全(如果相当迟钝)的调试器,它可以设置断点、检查内存等。我只是无法让它打印异常......
-
@Rich,对不起,你完全正确。我错误地想到了dbmon。我讨厌变老!