我该如何安排调试?

时间:2009-10-15 19:11:07

标签: c# visual-studio-2008

在我的工作场所有这个签到程序,它只接收来自签到机器的数据并将其存储在我们的数据库中,但突然间无处不在周四开始报告错误但仅一次是在白天的一个随机时间,所以当我检测到错误时,我运行程序但没有任何反应,所以我想每隔5-10分钟调试一次,看看我是否发现错误,看看发生了什么,怎么能我这样做了?

3 个答案:

答案 0 :(得分:2)

记录是你的朋友。添加大量日志记录(使用内置的跟踪日志记录或使用某些框架,如log4net)。使用不同的日志级别来控制您获取的日志记录量。在详细级别,您可以在进入和退出重要方法时记录,记录输入参数并返回值。登录catch块等。然后在报告下一个错误后分析日志文件。

答案 1 :(得分:2)

您目前在此应用程序中实施了哪种错误记录?如果没有,您会考虑添加全面的应用程序日志记录,例如Log4Net工具吗?或者,如果这是一个Web应用程序ELMAH工具?

这样,您可以记录发生的每个错误及其详细信息,例如堆栈跟踪以跟踪问题。

答案 2 :(得分:0)

一些想法:

检查服务器事件日志以查看是否存在可以提取的任何崩溃小型转储。这些可以告诉你很多关于程序崩溃时发生的事情(调用堆栈等)。

或者编写一个包装器程序,它可以运行程序并检测它何时失败,然后在那一刻拍摄服务器状态的快照,这样你就可以(希望)用必要的数据重新执行任务以获得可重复的崩溃在你的调试器中。

或者只是添加大量日志记录。您可以使用PostSharp添加跟踪,告诉您进入和退出的每个方法,以便您可以轻松确定失败时正在运行的方法。

您可以添加强制解码代码。虔诚地检查空值等等,你可能会发现你已经纠正了这个问题而不必知道哪个修正了它。

如果程序不是太大,只是老式和桌面检查(阅读打印输出)代码可能会出现一些错误。

另一种方法(获得更多实验性)可能是修改程序以便连续运行,这样您就可以将它放在调试器中并保留它直到遇到异常。 (运行循环,等待刷新触发器文件或其他东西,然后开始正常的过程 - 大约5行代码可能就足够了)

相关问题