Как войти в функцию с помощью gdb ddebugger, если эта функция находится в другой программе c, которая находится в другой папке? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть существующий код 'c', написанный исследователем, и я хочу его отладить. Проект компилируется с использованием MAkE. Я пытаюсь отладить с помощью отладчика GDB. предположим, что папка 'A' содержит 'myproject.c', 'myproject', MAKEFILE и некоторые подпапки B, C, D et c. Теперь я отлаживаю файл gdb myproject. Я создал точку останова на функцию1. Этот function 1 находится в файле x.c в папке B. Когда я передаю команду step, она выполняет всю функцию, но я хочу видеть ее построчно.

1 Ответ

1 голос
/ 24 апреля 2020

Когда я передаю пошаговую команду, она выполняет всю функцию, но я хочу видеть ее построчно.

Это означает, что x.c компилируется без отладочной информации (без -g flag).

В файле Make File уже включен флаг -g

То, что имеет Makefile, несколько не имеет значения. Важна командная строка, которую make создает для компиляции x.c.

Run make clean all. Это должно (при условии правильного Makefile) перестроить всю программу, перекомпилировав x.c. Теперь посмотрите на командную строку, использованную для компиляции x.c. У него не будет опции -g. Вам нужно будет изменить Makefile, чтобы он сделал.

...