GDB не показывает исходный код при использовании команды list - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь отладить segfault, но кажется, что некоторые общие команды gdb не работают должным образом. Если я сделаю следующее:

gdb ./executable_name
break main
run
list

я получу следующую ошибку:

(gdb) list
1   <built-in>: No such file or directory.

Аналогично, если я позволю программе работать до тех пор, пока она не выйдет из строя, а затем попытаться проверить конкретный кадр в стеке, используя

bt
up
list

Я получаю похожую, но более короткую ошибку:

(gdb) list
1   in <built-in>

Я уже использовал GDB в других системах на основе Ubuntu и у меня не было такой проблемы, как это, так что я предполагаю, что мне все еще нужно правильно настроить GDB в моей системе, чтобы он знал, где искать соответствующий исходный код исполняемого файла. Кто-нибудь знает, как я могу заставить GDB отображать исходный код при использовании команды list при отладке?

1 Ответ

0 голосов
/ 05 марта 2020

Я должен был посмотреть больше, прежде чем задавать вышеуказанный вопрос. Вышеупомянутый исполняемый файл не был построен в режиме отладки. Я использую ROS и catkin, поэтому использование catkin build -DCMAKE_BUILD_TYPE=Debug в каталоге пакетов решило проблему.

...