在 XCode4 下构建应用程序插件时,我遇到了一个非常奇怪的问题。 (苹果LLVM 4.2) 该项目为外部应用程序构建了一个插件文件,该文件基本上是一个捆绑包,但具有不同的扩展名。 该插件本身正在对视频流进行一些操作,并且具有相当高的吞吐量要求,因此需要适当优化的代码。
但是,一旦我启用除“无”[-O0] 之外的任何优化级别,应用程序就需要永远加载我的插件,因此我的插件永远不会被使用。 从到目前为止的调试来看,我看不到任何明显的代码失败的位置, 或者与未优化的代码版本相比采取不同的路径。 早期版本的代码在Xcode3下使用优化编译良好, 然而,添加新功能需要更高的性能,不使用优化已不再可接受。
所以我希望有人可以提供一些调试/跟踪这个问题的技巧? 它都是相当标准的 C++,带有一些 pthreads 的东西。 遗憾的是,我还没有开发针对这种特殊情况的调试技巧或技术。
主机应用程序确实提供了一个示例项目,在打开优化的情况下,该项目可以正常编译。然而,我正在寻找调试技术方法,而不是简单地逐行重建我的项目以尝试找到有问题的代码。
提前致谢,
詹姆斯。
PS。客气一点,这是我在这里发表的第一篇文章。 顺便说一句,很棒的资源。
我认为cobbal已经提供了合适的答案, IE。尝试逐个文件启用优化。
我已经尝试过了,现在我已经有了插件来编译包含 CPU 密集型代码的文件,并通过优化进行编译,我还发现了哪个文件包含有问题的代码。
逐个文件选择性地启用编译选项,可以成为强大的调试工具。
所以谢谢科巴尔。
(不知道如何称赞他提供了正确答案)