使用GDB进行调试时可能导致问题的GCC选项

cla*_*laf 7 flags gcc gdb

我想知道我是否可以得到一个gcc选项列表,可能导致gdb表现得很奇怪.

当然,我们都知道使用优化选项(例如-O3)会导致gdb中出现奇怪的行为,但是其他可以产生这种影响的选项是什么?

(我目前正在尝试在gdb中运行mpeg2解码器,即使在删除优化标志后我也会出现奇怪的行为......)

coe*_*udo 9

我认为很难说在调用gcc进行调试时你不应该使用什么标志.在GCC文档指出默认的调试标志-g-O2,并使用-g -O0 -fno-inline禁用任何优化和函数内联.

在我看来,如果你真的想要保证没有什么会弄乱你的调试过程,你只需要使用-g -O0 -fno-inline标志进行编译.

  • 毫不奇怪,在第一种情况下-O0会覆盖-O3.gcc联机帮助页说:"如果你使用多个-O选项,有或没有级别号,那么最后一个选项就是有效的选项." (2认同)