首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安排调试?

如何安排调试?
EN

Stack Overflow用户
提问于 2009-10-15 19:11:07
回答 3查看 47关注 0票数 1

在我的工作场所有一个签入程序,它只从签入机器获取数据并将其存储在我们的数据库中,但突然在周四突然开始报告错误,但只在一天中的随机时间报告一次错误,所以当我检测到错误时,我运行程序但没有任何反应,所以我想每5-10分钟调试一次,看看是否捕获到错误,看看发生了什么,我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-15 19:15:39

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

票数 2
EN

Stack Overflow用户

发布于 2009-10-15 19:17:02

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

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

票数 2
EN

Stack Overflow用户

发布于 2009-10-16 03:29:18

一些想法:

检查服务器事件日志,查看是否有可以拉出的崩溃小型转储。这些可以告诉你程序崩溃时发生了什么(调用堆栈等)。

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

或者只是添加日志记录的负载。您可以使用PostSharp添加跟踪,它会告诉您进入和退出的每个方法,这样您就可以轻松地确定哪个方法在失败时正在运行。

您还可以添加robustification代码。严格检查空值等,你可能会发现你已经纠正了这个问题,而不一定知道是哪个修复程序修复了它。

如果程序不是太大,仅仅是老式的和桌面检查(读取打印输出),代码很可能会出现一些big。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1574419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档