delphi – 用于在远程机器上调试问题的技术和工具?

用户一直报告我的机器无法复制的问题/崩溃/错误.我发现这些问题难以解决.

我开始使用EurekaLog(太棒了)和SmartInspect.这两个工具都有很大的帮助,但是我仍然很难找到一些问题.

我刚买了Debugging by David Agans(等待它到达).

有没有其他特定于Delphi的工具或技术,有助于捕捉这些难以找到远程问题?我发现难以追溯的问题是那些不引起例外或明确原因的问题. EurekaLog捕获异常,一旦我有理论检查,SmartInspect就会很好.但在某些情况下,这是一个看似随机的崩溃,有几千行代码可能是错误的.如何缩小到根本原因?

最佳答案
MadExcept是我使用的,这是神话般的.我也使用了EurekaLog,发现功能几乎完全相同,除了我有更多的经验和时间使用MadExcept.它是免费的非商业用途,价格合理的商业用途.
更新:MadExcept 4现在出来,甚至支持64位Delphi XE2应用程序,并且还有内存泄漏检查.

当没有什么爆发的时候,我依靠大量使用痕迹记录.我有一个TraceMessage(整数,字符串)函数,我在所有的应用程序中调用,当有人出现问题时,让他们点击一个菜单项,将调试跟踪级别调到最详细的级别;它给了我一个完整的应用程序的历史记录,这有助于我超越madExcept来解决客户站点的问题.客户发生故障,madexcept发送的崩溃报告包含自动附加的日志文件(由我的应用程序创建).我相信你可以和madExcept和EurekaLog一样好.如果您需要一个记录系统,您可以下载Log4D,或者您可以编写自己的,这很简单.

为了永远免费,请尝试JclDebug,这需要更多的工作来设置,但是对我来说也是如此.

有关堆问题的帮助,请了解有关fastMM(完整版)调试选项的更多信息.

您不应该忘记,Delphi本身支持远程调试,如果您可以在办公室的机器上重新安装没有安装delphi的崩溃,请在办公室网络中使用远程调试,而不是在其他设备上安装完整的RAD Studio安装机器在你的工作.您也可以使用远程调试来连接到互联网上的客户端PC计算机,但是我还没有在互联网上尝试远程调试,所以我不能说它是否在互联网上运行良好.我知道,由于远程调试不支持自动部署您构建的EXE文件(您必须自己做这个部分),通过Internet远程调试到客户端PC是更多的工作.

您也可以通过修改所有提示和警告,然后通过来自Peganza的CodeHealer或Pascal Analyzer(PAL)来完成许多问题.这些静态分析工具可以帮助您找到真正的代码问题.

如果性能和内存使用是您的问题,请获取完整版本的AQTime,并使用它来配置文件并观察系统的运行.它将帮助您修复内存泄漏,并了解应用程序的运行时行为和内存使用情况,而不仅仅是漏洞,而是内存和CPU使用的瓶颈.其中一些瓶颈也可能是一些奇怪问题的根源.我甚至使用AQTime来帮助我找到死锁,因为它可以产生执行的痕迹,这可以帮助我找出运行的代码,找到死锁.更新:AQTime不能安装在除主开机之外的其他机器上,而不会违反新修改的AQTime许可条款.这些术语从来没有在过去的好时光中受到限制.

如果您更确切地了解您的问题,我相信其他人可以给您一些更具体的想法,但上述都是为我服务的一般技巧.

转载注明原文:delphi – 用于在远程机器上调试问题的技术和工具? - 代码日志