2

我使用 VS 2010 Ultimate 开发 C# 应用程序。通常,这些应用程序会运行很长时间,无需用户交互,当然,它们内部通常也存在错误。

不幸的是,应用程序通常会随机崩溃,而您无法重现错误。此外,有时我只有消息“应用程序已停止工作”而没有更多信息。

我可以在客户的机器上安装 Visual Studio,但我不能让他运行 VS 并在调试模式下编译/启动源代码!我需要的是在应用程序启动并崩溃后启动 VS。似乎可以这样做,实际上当运行时发生异常时,Windows 会问你“你想用 VS 调试吗?”,但如果我回答“是”,那么 VS 会启动,但我根本看不到源代码代码(它也在电脑上),因此我无法检查导致异常的代码行。VS 只是告诉我“源代码不可用”。实际上,我无法想象 Windows 是如何启动 VS 并知道崩溃的应用程序的源代码在哪里的!

有谁知道这个调试场景是如何工作的,以及如何配置它?

非常感谢,西蒙娜

4

3 回答 3

1

Windbg调试工具解决了这个目的。

转储进程状态并开始使用 windbg 进行分析。它为您提供异常信息

于 2012-05-07T04:19:55.037 回答
1

要从已经运行的 Visual Studio 实例进行调试,请选择“调试”菜单项,然后选择“附加到进程...”

附加到进程

接下来,从列表中选择可执行文件,按“附加”(或双击),您现在正在调试应用程序。当您选择“是”并且 Windows 说源代码不可用时,这很可能意味着 PDB 无法加载,因此请确保您已通过在“模块”中检查它来加载模块的符号" 窗格。

于 2012-05-07T04:24:27.867 回答
0

如果你想在运行编译程序时捕获错误,你应该使用某种日志机制。如今,您不必自己编写它,有一个为 .NET 应用程序设计的出色的开源日志记录引擎,它称为NLog。它能够将日志保存到文件、电子邮件、控制台或数据库中,几乎可以满足您的所有需求:)。

希望这可以帮助 :)

于 2012-05-06T20:41:23.313 回答