我的调试CFLAGS总是-g -O0
。后者主要是在调试时禁止跳转到意外行。现在越来越多的程序拒绝使用-O0进行编译,此外,-D_FORTIFY_SOURCE
需要优化器。
是否可以使用-O
进行编译,但在调试器中具有可预测的行为?
答案 0 :(得分:1)
如果您使用的是GCC 4.8或更高版本,请尝试使用-g -Og
。如the release notes中所述:
引入了新的通用优化级别-Og。它满足了快速编译和卓越调试体验的需求,同时提供了合理的运行时性能。总体开发经验应优于默认优化级别-O0。