Как использовать GDB для отладки большого проекта? - PullRequest
2 голосов
/ 11 ноября 2009

Теперь у меня есть проект на языке c, который включает в себя три каталога / bin , / inc и / src . Все заголовочные файлы ( .h) включены в / inc , а все исходные файлы ( .c) хранятся в / src , т.е.ac, bc, cc .., последний сгенерированный исполняемый файл будет находиться в /bin.

после компиляции с make-файлом все файлы obj будут сгенерированы в / src / obj , как a.o, b.o, c.o, d ....! Кроме того, исполняемый файл final.exe будет создан в каталоге / bin .

Теперь, если я хочу отладить его с помощью GDB, как мне это сделать ???

Отладить эти файлы obj в / src / obj? или что-то еще?

Большое спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 11 ноября 2009

Вы можете либо отладить приложение, запустив его с помощью GDB

%> gdb <your_executable>

или, как правило, проще запустить приложение, а затем подключить отладчик к процессу, используя PID.

%> gdb -p <pid>

Для параметров командной строки просто введите gdb -h и во время работы внутри GDB Справку всегда можно получить, набрав «help» в командной строке GDB.

Вот краткий шпаргалка и учебный сайт по некоторым распространенным командам.

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

Если отладка из командной строки немного устрашает, есть несколько доступных пользовательских интерфейсов, использующих GDB. Я много отлаживаю в Eclipse с использованием gdb.

Как только вы начнете идти по пути GDB, я уверен, что у вас будет больше вопросов, и я призываю вас задать эти более конкретные вопросы по SO.

Удачи.

1 голос
/ 11 ноября 2009

В чем проблема с gdb bin/binary.exe? Если вы правильно скомпилировали и поместили -g -ggdb во флаги компиляции, GDB должна иметь достаточно информации для отображения встроенного кода

...