Изменение версии gcc/g++ вызывает segfault

Кажется, что изменение версии GCC я использую с gcc 4.7.3 в gcc 4.9.2 вызывает segfault для моего проекта (после чистой сборки и запуска).

В неудачном повороте событий gdb не работает на сервере Я получаю эту ошибку и не могу использовать ее в настоящее время. Любые известные изменения в самом gcc, которые могли бы вызвать это? Я подозреваю, что проблема потенциально вызвана двойной свободой.

1 ответ

Решение

Вы должны попытаться использовать valgrind.

Valgrind - это инструмент отладки, требующий компиляции вашего кода с флагом -g. Это лучший способ обнаружить ошибку сегментации в программе или любую утечку памяти.

Подумайте об использовании параметров valgrind во время отладки (это в нижней части отчета valgrind) что-то вроде утечки-проверки (сейчас я не могу запустить valgrind, поэтому не могу точно сказать, что это такое).

Но всякий раз, когда я компилирую свой код, я использую его вместе с valgrind для проверки всех возможных ошибок. Для большей простоты подумайте даже о включении VG в ваши правила Makefile.

Другие вопросы по тегам