Есть ли отладчик Make? Мне нужно выяснить чужой make-файл - PullRequest
4 голосов
/ 11 сентября 2010

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

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

Ответы [ 2 ]

2 голосов
/ 11 сентября 2010

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

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

2 голосов
/ 11 сентября 2010

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

...