-march和调试模式

时间:2011-07-20 17:29:30

标签: c++ gcc

我知道太多的优化对调试代码没有多大意义 但是如果使用-march = native来更好地使用指令集呢?

编辑: 让我们重新阐述一下。我知道同时启用优化和调试模式可能有以下缺点:

  

GCC允许您将-g与-O一起使用。通过优化采取的快捷方式   代码可能偶尔产生令人惊讶的结果:一些变量你   声明可能根本不存在;控制流可能会短暂地移动到哪里   你没想到的;某些陈述可能无法执行,因为   他们计算出不变的结果,或者他们的价值已经存在;   有些陈述可能会在不同的地方执行,因为它们是   走出了循环。

所以我的问题是,-march = native有类似的副作用,还是在调试代码中使用它也是明智的?

1 个答案:

答案 0 :(得分:2)

优化的问题是积极的优化过程,改变控制流可能会混淆调试器。如果使用-O选项启用了这些传递,-march=native可以启用其他优化(例如cmov),但这本身不会混淆调试器。