gpt4 book ai didi

gcc - 构建调试目标时最好的 g++ 优化级别是什么?

转载 作者:行者123 更新时间:2023-12-03 08:35:05 24 4
gpt4 key购买 nike

当您想构建可调试的东西(特别是 g++,但可能与 gcc 共享一个答案)时,最好的 -O 级别是什么?换句话说,在构建“调试”目标而不是“发布”目标时。

在比较 -O0 和 -O1 ( here ) 时,gcc 在线文档有点粗略。我的解释是 -O1 只启用一种甚至可能影响可调试性的优化,即 -fomit-frame-pointer。但是引用文档,它仅在 -O1 中启用,“这样做不会干扰调试。”我的解释正确吗?

本网站上的另一篇文章 ( here ) 专门讨论了 -O2,答案基本上是“它可以工作,但您会出现乱序执行”。 IMO 的范围可以从烦人到破坏性,具体取决于事情跳动的严重程度。

最佳答案

GCC 4.8 引入了新的优化级别: -Og 为了两全其美。

-Og
Optimize debugging experience. -Og enables optimizations that do not interfere with debugging. It should be the optimization level of choice for the standard edit-compile-debug cycle, offering a reasonable level of optimization while maintaining fast compilation and a good debugging experience.



这样就完成了一些优化,因此您可以获得更好的性能,更好的可能未初始化的变量检测,并且您还可以在 GDB 中单步执行程序,而无需在函数中来回跳转。

关于gcc - 构建调试目标时最好的 g++ 优化级别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com