发布构建调试问题

Posted

技术标签:

【中文标题】发布构建调试问题【英文标题】:Release build debugging issue 【发布时间】:2013-10-13 07:59:08 【问题描述】:

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

使用依赖遍历器显示任何依赖都没有问题。使用作为 Dependency Walker 一部分的分析器,它也可以完美运行。

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

有没有一种调试技术可以帮助我找到这个问题?我们正在使用 VS2008 和 Qt 4.7.1。

【问题讨论】:

【参考方案1】:

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

根据您的描述,在我看来,可能会在某些线程或其他线程因被某物观察而变慢时得到解决。或者通过将调试信息添加到二进制文件中。

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

【讨论】:

WindDebug 是个好朋友。添加调试信息和日志记录最终找到了未初始化变量的条件。花了两天时间终于找到了。【参考方案2】:

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

【讨论】:

以上是关于发布构建调试问题的主要内容,如果未能解决你的问题,请参考以下文章

只能在调试中构建发布

如何一次构建调试和发布?

使用发布 CRT 在调试中构建应用程序,但在 boost 上存在依赖问题

在构建发布版本时引用调试 dll

构建模式始终是调试

在调试构建期间禁用 SonarLint 分析