修改gcc/g++版本会导致段故障

Changing gcc/g++ version causes segfault

本文关键字:段故障 故障 gcc g++ 版本 修改      更新时间:2023-10-16

似乎将我使用的gcc版本从gcc 4.7.3更改为gcc 4.9.2会导致我的项目出现段错误(在干净构建和运行之后)。

在一个不幸的转折中,gdb在服务器上被打破了得到这个错误,现在不能使用它。gcc本身是否有任何已知的变化会导致这种情况?我怀疑这个问题可能是由double free.

您应该尝试使用valgrind。

Valgrind是一个调试工具,只需要使用-g标志编译代码。这是发现程序分段错误或任何内存泄漏的最佳方法。

考虑在调试时使用valgrind选项(它在valgrind报告的底部),比如泄漏检查(我现在无法运行valgrind,所以我不能确切地告诉你它是什么)。

但是每当我编译代码时,我都会使用valgrind来检查每一个可能的错误。为了更简单,甚至可以考虑在Makefile规则中添加VG。