1

在 XCode4 下构建应用程序插件时遇到了一个非常奇怪的问题。(Apple LLVM 4.2)有问题的项目为外部应用程序构建了一个插件文件,该文件基本上是一个包,但具有不同的扩展名。该插件本身正在对视频流进行一些操作,并且具有一些相当高的吞吐量要求,因此需要适当优化的代码。

但是,一旦我启用除无 [-O0] 以外的任何优化级别,应用程序将永远加载我的插件,因此我的插件永远不会被使用。到目前为止,从我的调试来看,我看不到任何明显的代码失败位置,或者与未优化的代码版本相比采用了不同的路径。早期版本的代码在 Xcode3 下使用优化可以很好地编译,但是添加新功能需要更高的性能,并且不再使用优化。

所以我希望有人可以提供一些关于调试/跟踪这个问题的提示?这都是非常标准的 C++,带有一些 pthreads 的东西。遗憾的是,我还没有针对这种特殊情况开发调试技能或技术。

宿主应用程序确实提供了一个示例项目,该项目在打开优化的情况下可以正常编译。但是,我正在寻找调试技术方法,而不是简单地逐行重建我的项目以尝试找到有问题的代码。

提前致谢,

詹姆士。

PS。很好,这是我在这里的第一篇文章。顺便说一句,很棒的资源。

4

1 回答 1

0

我认为 cobbal 已经提供了一个合适的答案,即。尝试逐个文件启用优化。

我已经尝试过了,现在我有插件编译包含 CPU 密集型代码的文件,并通过优化进行编译,我还发现了哪个文件包含有问题的代码。

在逐个文件的基础上选择性地启用编译选项是一个强大的调试工具。

所以谢谢科巴尔。

(不知道如何给他提供正确答案的任何功劳)

于 2013-10-23T23:41:13.877 回答