Отладка ошибки сегментации в коде C , вызываемом из Python

#c #python #gdb #core-file

#c #python #gdb #core-file

Вопрос:

У меня есть тест, который запускает скрипт python, который вызывает код C , где он выполняет сегментацию и сбрасывает ядро. Я пытался загрузить основной файл в GDB, используя /usr/bin/python2.6, но это просто дает мне?? для всех элементов в трассировке стека. Как мне отладить этот основной файл?

Ответ №1:

Вам необходимо скомпилировать версию Python с отладочными символами. Вы можете сделать это, создав Python с ./configure --with-pydebug помощью . Надеюсь, вы сможете найти ошибку таким образом.

Это в некотором роде изменит поведение Python внутри. Если вы по-прежнему не получаете segfault таким образом, вы можете попробовать запустить ./configure CFLAGS="-O0 -ggdb3" или даже просто ./configure CFLAGS=-ggdb3 .