也许它记录每个菜单项选择、控件点击、文本输入等?也许它只在崩溃时转储堆栈。也许它做别的事情...
我不介意添加代码(例如,在每个过程的开头和结尾),因为那可能会生成比完全自动化系统更有用的信息。
我不确定解决方案是否应该“打电话回家”,或者仅产生一个可通过电子邮件发送给我的文本文件就足够了。
有什么建议吗?
使用MadExcept进行崩溃调试
http://www.madshi.net/madExceptDescription.htm
madExcept旨在帮助您定位软件中的崩溃。每当程序出现异常时,madExcept会自动捕获、分析并收集大量有用信息,并让最终用户有可能向您发送完整的错误报告。
非商业用途免费,商业用途价格便宜。
或者使用来自JEDI代码库的JclDebug
这里可以找到关于它的博客文章 http://www.gnegg.ch/2002/12/jcldebug/
编辑:这似乎是如何使用JCLDebug的一个非常好的示例 http://robstechcorner.blogspot.com/2009/04/finding-hard-to-reproduce-errors.html
你看过开源的JclDebug吗?这是Project Jedi上一个关于JclDebug的简明写作。
想象一下,你可以获得一个详细的错误报告,其中包含完整的调用堆栈以及有关文件和行号的信息。该报告可以直接在用户计算机上生成,并通过电子邮件或直接通过互联网使用自定义程序发送给您-甚至可以直接创建您正在使用的bug追踪工具中的条目。
JEDI项目使这成为可能-更准确地说,是其JCL-子项目和其JclDebug框架。安装完软件包后,将在Delphi-IDE的项目菜单中添加一个名为“插入JCL Debug数据”的新菜单选项。
有一个很好的Delphi版本的开源日志框架,它是用Java编写的最著名的开源日志框架Log4J的移植版:它被称为Log4Delphi。
http://log4delphi.sourceforge.net
我下载了它,并成功地将其扩展和用于我的项目。
最佳特点:开源、Apache许可证、非常好的文档、简单扩展、强大的设计:使用appender的概念,您可以构建自定义appender,并使用UDP协议将日志数据从远程客户机发送到总部。
试试吧,然后告诉我 :-)。
PS:该项目似乎已经停止更新,但它已经成熟,我使用它时没有出现内存超载和CPU负载问题。
log4Delphi项目已经休眠了4年,但我已被授权更新这个休眠的Log4Delphi项目,并将过去4年中的错误修复和补丁整合到最新的0.8版本中,该版本可在Source-forge上下载。我在生产中使用这个库,发现它非常稳定、可靠且易于使用。