Есть ли отладчик 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)