www tag managerç manager googletagmanager google debug debugging makefile

debugging - tag - Herramienta para depurar makefiles



tm googletagmanager (5)

Desde la página man en las opciones de línea de comando 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.

Tengo una gran base de código heredada con makefiles muy complicados, con muchas variables. A veces tengo que cambiarlos, y me parece que es muy difícil descubrir por qué el cambio no funciona de la manera que esperaba. Lo que me gustaría encontrar es una herramienta que básicamente haga una depuración paso a paso del proceso "make", donde le daría un directorio, y podría ver el valor de diferentes variables en diferentes puntos en el proceso. Ninguno de los indicadores de depuración para hacer parece mostrarme lo que quiero, aunque es posible que me esté perdiendo algo. ¿Alguien sabe de una manera de hacer esto?


Estoy seguro de que el remake es lo que estás buscando.

Desde la página de inicio:

remake es una versión revisada y modernizada de la utilidad GNU make que agrega informes de errores mejorados, la capacidad de rastrear la ejecución de una manera comprensible y un depurador.

Tiene una interfaz tipo gdb y es compatible con mdb-mode en (x) emacs, lo que significa rupturas, relojes, etc. Y DDD si no te gusta (x) emacs


Hay un proyecto de depuración de GNU en http://gmd.sf.net que parece bastante útil. La principal característica admitida por gmd es la detección de fallas, que puede ser más útil que el paso. Para usar esto, descargue gmd desde http://gmd.sf.net y gmsl desde http://gmsl.sf.net , y haga un ''include gmd'' en su archivo MAKE.


No conozco ninguna bandera específica que haga exactamente lo que quiere, pero

--print-data-base suena como que podría ser útil.


¿Has estado mirando el resultado de ejecutar make -n y make -np , y biggie make -nd ?

¿Estás usando una versión bastante reciente de gmake ?

¿Has consultado el capítulo gratuito sobre Depuración de Makefiles disponible en el sitio de O''Reilly para su excelente libro "Gestión de proyectos con GNU Make" ( Amazon Link ).