读书人

怎么查看gcc -g 与 -O的差别

发布时间: 2012-04-27 11:57:44 作者: rapoo

如何查看gcc -g 与 -O的差别
前段时间遇到个奇怪的问题,在编译SO库时,使用-g编译,调用一点问题没有,但是一旦使用-O编译,程序就会CORE。

我知道有个-i的选项,是否使用gcc -g -i....与gcc -O3 -i...得到优化后的代码进行再进行比对?我看过优化后的代码,说实话,不太容易懂。

有没有更好的办法能知道优化后的代码有什么区别?或者帮忙提供下优化后代码的阅读方法,或者还需要哪些知识储备才能读明白优化后的代码。。。

望各位朋友解答。谢过!

GCC版本记不清了。。。

(另:其实我最希望的是编译器的BUG。。哈哈。。那就跟我没什么关系了。。)

[解决办法]
gcc -v 输出gcc版本

这种问题,一般是 代码问题。
几乎没疑问的
[解决办法]
-O1 -O2 -O3 -Os都有问题否?

难道你不可以-g -O3编译下自行调试么

这个问题等同于windows下的debug正常,release有问题
[解决办法]
很坚定的相信,楼上的就是对的。。
[解决办法]
也有可能是多线程程序由于优化导致逻辑改变,这种问题还是很难查的
[解决办法]
出core先bt看一下core在哪啊,有core不看算神马。

读书人网 >C语言

热点推荐