3

我开发了一个小应用程序,用于在本地计算机和在线 Web 服务之间同步数据。

在测试环境中,使用 Visual Studios 2012 Express 调试模式,我无法重现导致应用程序崩溃的错误。

我已经尝试通过将数据写入 .txt 文件来手动记录活动,以便为我提供参考框架,但我仍然无法确定此错误发生在哪里。

是否有任何工具可用于在生产模式下调试此应用程序?

4

5 回答 5

3

如果您可以在远程生产机器上启动一个进程,那么在这种情况下最简单的方法就是使用VS 远程调试器

这样,您将拥有一个完整的调试上下文,其中包含比简单日志记录更多的信息;调试体验(几乎)与本地调试相同。

遗憾的是,该工具并未广为人知,因为它实际上可以为您节省数小时甚至数天的棘手错误。

于 2013-06-08T15:11:29.117 回答
0

尝试在AppDomain.UnhandledException事件处理程序中记录堆栈跟踪。

此外,可以使用 PostSharp 的面向方面编程来跟踪所有函数调用。PostSharp 网页上有示例。

于 2013-06-08T15:02:31.093 回答
0

每当发生未处理的异常时,我们都会使用Microsoft Enterprise Library记录堆栈跟踪并将其通过电子邮件发送给我们。

于 2013-06-08T15:07:02.973 回答
0

只需使用NBug库,它可以捕获未处理的应用程序并将错误报告发送到您指定的电子邮件地址。

于 2013-06-08T15:12:58.390 回答
0

是的,问题可能与环境或您调试的软件版本与生产不同。因此,理想情况下,您需要根据相同的源代码版本调试实时版本并调试符号文件

网上有很多关于如何做到这一点的文章,比如这个这个。我曾经读过一篇文章,它向您展示了如何不仅使用 TFS 正确设置符号服务器,而且还介绍了如何调试生产 exe,VS 将从符号服务器加载该版本的正确符号,并从 TFS 加载源代码版本......但可惜我找不到它。

远程调试日志记录是非常重要的工具,但是当您处于现在的位置时 - 正确版本的调试符号和源代码可能会为您提供更多帮助。

于 2013-06-08T15:38:37.217 回答