Как отладить программу, скомпилированную с помощью make? - PullRequest
6 голосов
/ 06 октября 2011

В руководствах по gdb предлагается компилирование с помощью 'gcc -g' для компиляции программы с символами отладки.

Однако я хочу отладить программу, скомпилированную с make. Как я могу дать команду make скомпилировать символы отладки?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 06 октября 2011

Чтобы изменить параметры компиляции, вам нужно отредактировать файл 'Makefile' в каталоге, из которого вы запускаете 'make'. Внутри этого файла найдите одну из следующих вещей:

  1. Переменная, которая определяет ваш компилятор, возможно что-то вроде:

    CC = 'GCC'

  2. Фактическая строка, где вызывается ваш компилятор (более вероятно, в Make-файлах ручной работы).

  3. Переменные, называемые CFLAGS или CXXFLAGS

В первых двух случаях просто добавьте '-ggdb' после 'gcc', в третьем случае еще проще просто добавить '-ggdb' как:

CFLAGS='-ggdb'
3 голосов
/ 06 октября 2011

Файлы make, с которыми мне приходится иметь дело (создаваемые другими), часто не позволяют легко изменить параметры компилятора.Простая установка CFLAGS в командной строке проста, но затирает многие другие важные параметры компиляции.Однако вы часто можете решить эти проблемы, переопределив макрос компилятора в командной строке make:

make CC="gcc -g" ...other arguments...

Необходимо убедиться, что все, что вас интересует в отладке, скомпилировано с флагом отладки.Вы можете использовать make cleanup или make clean для очистки от мусора, или вы можете прибегнуть к более простым мерам (rm *.o *.a *.so или его эквивалентам).Или, если у вас есть GNU Make, тогда используйте -B или --always-make, чтобы заставить его перестраивать все.

Если у вас есть многокаталоговые сборки, вам нужно сделать это во всех соответствующих каталогах.

...