2013-10-13 96 views
0

我有一个相当标准的C++/QT应用程序,它可以在我的开发PC上进行调试和发布。在干净的PC上试用发行版本时,它会运行,但功能的一部分(通过USB连接显示视频)无法运行。好吧,以前看过这个,我的标准技术是将调试信息添加到发布版本,设置远程调试并查看。令我惊讶的是,它作为一个发布版本与调试信息(.pdb) 运行良好,我从来没有见过这种情况。发布版本调试问题

使用依赖关系walker显示没有任何依赖关系的问题。使用属于Dependency Walker一部分的剖析器,它也可以完美运行。

我已经用完了调试技术,我唯一能想到的就是在多线程应用程序中的各个位置添加消息框似乎不是一个好主意。

有没有可以帮助我发现这个问题的调试技术?我们使用VS2008和Qt 4.7.1。

回答

1

优化您的消息框 - 使用日志文件。

从你的描述,在我看来,有可能某种当某个线程或其他被通过的东西被观察放缓是被解决竞争条件/时间问题。或者通过向二进制文件添加调试信息。

使用带时间戳的日志文件,您应该能够跟踪事件发生的时间。

+0

WindDebug是一个很好的朋友。添加调试信息和日志记录最终找到了未初始化变量的条件。花了两天时间才终于找到它。 – ExpatEgghead

1

我认为伐木是你的朋友。如果您有多个线程,则可能需要将每个线程记录到不同的日志文件。