J'ai un grand héritage de la base de code avec de très compliqué makefiles, avec beaucoup de variables. Parfois j'ai besoin de les changer, et je trouve que c'est très difficile de comprendre pourquoi le changement n'est pas sur le même chemin que j'attends. Ce que je voudrais savoir est un outil qui ne fait étape-par-débogage du "faire", où je voudrais lui donner un répertoire, et je voudrais être en mesure de voir la valeur des différentes variables à différents points dans le processus. Aucun des indicateurs de débogage pour faire semblent montrer moi ce que je veux, même si c'est possible qu'il me manque quelque chose. Personne ne sait d'une façon de le faire?
Réponses
Trop de publicités?Avez-vous examiné le résultat de make -n et make -np, et du plus gros make -nd?
Utilisez-vous une version assez récente de gmake?
Avez-vous consulté le chapitre gratuit sur le débogage de Makefiles disponible sur le site de O'Reilly pour son excellent livre "Gestion de projets avec GNU Make" ( Amazon Link ).
Je suis sûr que le remake est ce que vous cherchez.
À partir de la page d'accueil:
le remake est une version modifiée et modernisée version de GNU make utilitaire qui ajoute amélioré les rapports d'erreurs, la capacité à suivre l'exécution d'une manière compréhensible, et un débogueur.
Il a gdb-comme l'interface et est pris en charge par mdb-mode (x)emacs, ce qui signifie breakponts, montres, etc. Et il y a DDD si vous n'aimez pas (x)emacs
Depuis la page de manuel sur les options de ligne de commande de make:
-n, --just-print, --dry-run, --recon
Print the commands that would be executed, but do not execute them.
-d Print debugging information in addition to normal processing.
The debugging information says
which files are being considered for remaking,
which file-times are being compared and with what results,
which files actually need to be remade,
which implicit rules are considered and which are applied---
everything interesting about how make decides what to do.
--debug[=FLAGS] Print debugging information in addition to normal processing.
If the FLAGS are omitted, then the behaviour is the same as if -d was specified.
FLAGS may be:
'a' for all debugging output same as using -d,
'b' for basic debugging,
'v' for more verbose basic debugging,
'i' for showing implicit rules,
'j' for details on invocation of commands, and
'm' for debugging while remaking makefiles.