Язык C: ошибка сегментации с valgrind - PullRequest
1 голос
/ 28 октября 2011

Я только начинаю с программирования на C (следуя «C The Hard Way») - каждый раз, когда я пытаюсь запустить valgrind, у меня появляется ошибка Сегментации в терминале сразу же после биты .

Я установил и переустановил valgrind

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 28 октября 2011

Valgrind никогда не должен вызывать segfault - каждая (даже глючная) программа должна быть запущена и проблемы перехвачены.

Если вы получаете segfaults даже для таких безобидных команд, как valgrind true, я предлагаю вам загрузить предварительно скомпилированные двоичные файлы valgrind для вашей ОС, предположительно с помощью менеджера пакетов. Иногда возникают похожие проблемы с компиляцией (это могут быть ошибки в компиляторе, несовместимость между исходными текстами и компилятором, плохие библиотеки ...). Вы, вероятно, не хотите копаться в этом, если вы все еще учитесь.

Если valgrind просто сообщает о сбое в вашей программе, публикуйте его сообщения. Это означает, что в вашей программе есть ошибка.

1 голос
/ 28 октября 2011

Какая программа неисправна SEGV, valgrind сама или ваша собственная программа?

Если это ваша программа, вы можете просто скомпилировать ее с включенной отладкой (которая использует gcc -g в Linux) и затемзапустите его в отладчике (gdb в Linux).

Если это само по себе valgrind, поскольку вы новичок, вам не повезло, но вы все равно можете отладить свою программу традиционным способом (с помощью gdb).Использование gdb здесь задокументировано

...