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