应用程序插件在-o0 OSX以外的任何优化级别都会失败

时间:2013-10-23 00:03:08

标签: xcode macos optimization compiler-construction

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

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

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

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

提前致谢,

詹姆斯。

PS。很高兴这是我在这里的第一篇文章。很棒的资源btw。

1 个答案:

答案 0 :(得分:0)

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

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

逐个文件选择性地启用编译选项,可以是一个功能强大的调试工具。

非常感谢cobbal。

(不确定如何给予他任何信用以提供正确答案)