有没有人经历混合-g(调试符号)和-O2(最佳安全优化)与gcc编译器?
我必须调试分发给最终用户的发布程序的崩溃,这些程序可能会将我发回给核心文件.
我一直习惯称:
gdb << myprogram >> << core file >>
并看看问题出在哪里.现在我可以看到调用跟踪但没有调试符号我遇到了麻烦.
任何的想法?
jan*_*neb 11
它工作正常.
或者,由于优化,有时您使用调试器的源代码与源完全不匹配,但IMHO尽管具有调试符号使调试更容易.
我们在生产环境中一起使用它们,如果客户只看到一次崩溃,这使得调试变得更容易.它可以让你很好地了解问题所在(不是内存损坏).
理论上,尽管可执行文件变大,但添加-g不应该真正影响性能.在嵌入式环境中,这是一个很大的权衡.