在gcc中使用-g和-O2选项

时间:2011-01-14 15:21:17

标签: c gcc

有没有人在gcc编译器中遇到混合-g(调试符号)和-O2(最佳安全优化)? 我必须调试分发给最终用户的发布程序的崩溃,这些程序可以将我的核心文件发回给我 我以前经常打电话:

gdb<< myprogram>> <<核心文件>>

并查看问题所在。现在我只能看到调用跟踪,但没有调试符号,我遇到了麻烦。

有什么想法吗?

2 个答案:

答案 0 :(得分:11)

工作正常。

或者,由于优化,有时您使用调试器的源代码与源完全不匹配,但IMHO尽管具有调试符号使调试更容易。

答案 1 :(得分:7)

我们在生产环境中一起使用它们,如果客户只看到一次崩溃,这使得调试变得更容易。它可以让你很好地了解问题所在(不是内存损坏)。

理论上,添加-g不应该真正影响性能,尽管可执行文件变大了。在嵌入式环境中,这是一个很大的权衡。