如果我启用C优化-O2或-fstrict-overflow(-O1很好),我的C程序崩溃

时间:2011-04-26 10:11:09

标签: optimization gcc crash segmentation-fault

我有一个C program(嘿,我在这里作弊,它生成的C代码),每当我用gcc -O2优化标志编译它时就会崩溃(分段错误)。 (gcc 4.6.0)

你知道如何调试这个吗?

我想我可以通过逐个删除optimizations进行测试,看看哪一个让我的程序崩溃......但这可能需要很长时间。你有更好的主意吗?

导致问题的优化是-fstrict-overflow。我将继续提供新信息。

由于

1 个答案:

答案 0 :(得分:0)

最近有一些关于该标志的编译器问题的报告(例如http://lists.debian.org/debian-gcc/2009/07/msg00168.html) - 值得用最新的GCC(或其他一些编译器,如果可能的话)进行编译,看看是否能解决问题。您也可以在调试器下运行调试符号(如果有用),并查看它崩溃的位置。如果周围的代码明显是防弹,那么更有理由怀疑编译器,否则你就可以开始调查。