我开发了一个小应用程序,用于在本地计算机和在线 Web 服务之间同步数据。
在测试环境中,使用 Visual Studios 2012 Express 调试模式,我无法重现导致应用程序崩溃的错误。
我已经尝试通过将数据写入 .txt 文件来手动记录活动,以便为我提供参考框架,但我仍然无法确定此错误发生在哪里。
是否有任何工具可用于在生产模式下调试此应用程序?
如果您可以在远程生产机器上启动一个进程,那么在这种情况下最简单的方法就是使用VS 远程调试器。
这样,您将拥有一个完整的调试上下文,其中包含比简单日志记录更多的信息;调试体验(几乎)与本地调试相同。
遗憾的是,该工具并未广为人知,因为它实际上可以为您节省数小时甚至数天的棘手错误。
尝试在AppDomain.UnhandledException事件处理程序中记录堆栈跟踪。
此外,可以使用 PostSharp 的面向方面编程来跟踪所有函数调用。PostSharp 网页上有示例。
每当发生未处理的异常时,我们都会使用Microsoft Enterprise Library记录堆栈跟踪并将其通过电子邮件发送给我们。
只需使用NBug库,它可以捕获未处理的应用程序并将错误报告发送到您指定的电子邮件地址。