Отладка Makefile - PullRequest
       1

Отладка Makefile

3 голосов
/ 15 июля 2010

Позвольте мне добавить этот вопрос к комментарию, который я очень мало знаю о Makefiles или make.

Существует очень большой проект, который автоматически создается ночью.Он построен как в режиме отладки, так и в режиме выпуска, отладка используется для таких утилит, как Valgrind, для анализа кода.Так или иначе, некоторые из встроенных библиотек теряют флаг отладки во время процесса make, что делает некоторые результаты анализа бесполезными.Мне было поручено найти ошибку, и мне нужно несколько советов о том, как найти / устранить проблему.

Заранее спасибо

Ответы [ 3 ]

5 голосов
/ 15 июля 2010

make также поддерживает флаг отладки, -d; в зависимости от того, как ваши Make-файлы вызывают друг друга, может быть возможно передать его (и если нет, вы можете переписать их, чтобы сделать это с помощью скрипта); затем, если вы передадите полученный результат в файл, вы можете начать искать подсказки.

4 голосов
/ 15 июля 2010

Учитывая скудную информацию, я могу только набросать очень общую стратегию, основанную на том, что я видел с точки зрения использования Makefile для нескольких крупных проектов.

Если вы еще не знаете, гдефлаги происходят, ищите в Makefiles, чтобы узнать.

Что-то вроде:

find . -name Makefile -exec grep -nH -- -g {} \;

(Настройка шаблона -name, если ваш проект использует включенные Make-файлы, такие как foo.mk или bar.mak илии корректировку «-g», если ваш флаг отладки - что-то еще.)

Вы, вероятно, найдете его назначенным переменной, такой как CFLAGS.Посмотрите вокруг места, где эта переменная назначена, она, вероятно, установлена ​​условно (например, ifeq($(RELEASE),1)).

Теперь посмотрите на Makefile (ы) в библиотеке, которая не получает эти флаги.Найдите место, где живет команда компиляции.Используется ли правильная переменная?Перезаписывают ли эти файлы Makefile переменную?

Также может быть полезно записать выходные данные сборки в файл и найти любые другие места, в которых не установлены флаги отладки.

0 голосов
/ 02 ноября 2010

использовать римейк, это действительно хорошо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...