如何在Delphi 6 IDE中保留大量的OutputDebugString()调用降级我的应用程序?

前端之家收集整理的这篇文章主要介绍了如何在Delphi 6 IDE中保留大量的OutputDebugString()调用降级我的应用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这种情况不止一次发生在我身上,导致许多人失去了追逐幽灵的时间.通常,当我调试一些非常困难的与时序相关的代码时,我开始添加大量的OutputDebugString()调用,因此我可以很好地了解相关操作的顺序.问题是,Delphi 6 IDE似乎只能处理这种情况很长时间.我将使用一个具体的例子,我只是为了避免一般性(尽可能多).

我花了几天时间调试我的线程间信号量锁定代码以及我的DirectShow时间戳计算代码,这导致了一些非常令人沮丧的问题.在消除了我能想到的每个错误之后,我仍然遇到了Skype的问题,我的应用程序发送了音频.

大约10秒钟之后,我在谈话和听到我的声音之间的延迟来自我用于测试的第二台PC上的Skype,呼叫的远端开始增长.在大约20-30秒后,延迟开始呈指数级增长,此时触发的代码我检查了一个关键部分是否被持有太长时间.

幸运的是,它并没有太晚,并且在此之前经历过这个,我决定停止无情地跟踪并关闭大部分OutputDebugString().值得庆幸的是,我将大部分内容包装在条件编译器定义中,因此很容易做到.我这样做的那一刻问题消失了,事实证明我的代码工作正常.

因此,当OutputDebugstring()流量超过某个阈值时,看起来Delphi 6 IDE开始陷入困境.也许只是向事件日志调试器窗格添加字符串的任务,该窗格包含所有OutputDebugString()报告.我不知道,但是当TMemo或类似控件开始包含太多字符串时,我在应用程序中看到了类似的问题.

那些人为了防止这种情况做了什么?有没有办法通过某种方法调用清除事件日志或至少是限制其大小的方法?另外,您通过条件定义,IDE插件或其他什么技术来应对这种情况?

解决方法

在使用Delphi 2007之前,我遇到了类似的问题.在IDE中禁用事件查看,而是使用 DebugView中的 DebugView.

猜你在找的Delphi相关文章