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

StackOverflow https://stackoverflow.com/questions/3688495

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top