Есть ли отладчик Make? Мне нужно выяснить чужой make-файл

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

Есть ли отладчик Make, где я могу пройти через него один шаг, или какой-то эквивалентный способ проследить выполнение через множество файлов и целей, через которые проходит компиляция? Или есть какой-то другой способ понять, как эта штука работает?

2 ответа

Решение

GNU Make имеет различные опции для распечатки отладочной информации во время работы. -d распечатает много отладочной информации; возможно, слишком много, и, возможно, не то, что вам нужно, но вы можете попробовать просеять это. Есть также варианты, такие как -n для пробного бега, -p для печати базы данных правил, -w для распечатки каталога, в котором вы находитесь, чтобы помочь отследить проблемы в сложных рекурсивных программах, и --warn-undefined-variables для отслеживания определенных проблем с переменными.

Если ничего из этого не работает, вы можете попробовать Remake, который утверждает, что это исправленный GNU make с отладчиком. Я не использовал его, но из документации он выглядит так, как будто он может вам помочь, и у него есть еще несколько советов по поиску ошибок в Makefiles.

Возможно, вы захотите взглянуть на эту статью http://oreilly.com/catalog/make3/book/ch12.pdf (глава "Отладка make-файлов" из книги "Управление проектами с помощью GNU Make, третье издание" от Oreilly)

Другие вопросы по тегам