我有一个C program(嘿,我在这里作弊,它生成的C代码),每当我用gcc -O2
优化标志编译它时就会崩溃(分段错误)。 (gcc 4.6.0)
你知道如何调试这个吗?
我想我可以通过逐个删除optimizations进行测试,看看哪一个让我的程序崩溃......但这可能需要很长时间。你有更好的主意吗?
导致问题的优化是-fstrict-overflow。我将继续提供新信息。
由于
答案 0 :(得分:0)
最近有一些关于该标志的编译器问题的报告(例如http://lists.debian.org/debian-gcc/2009/07/msg00168.html) - 值得用最新的GCC(或其他一些编译器,如果可能的话)进行编译,看看是否能解决问题。您也可以在调试器下运行调试符号(如果有用),并查看它崩溃的位置。如果周围的代码明显是防弹,那么更有理由怀疑编译器,否则你就可以开始调查。