2012-06-07 15 views

Respuesta

19

Uso make -d o make --debug[=flags]options:

‘-d’

Imprimir información de depuración además del procesamiento normal. La información de depuración dice qué archivos están siendo considerados para rehacer, qué tiempos de archivo se están comparando y con qué resultados, qué archivos necesitan rehacerse, qué reglas implícitas se consideran y cuáles se aplican, todo lo interesante sobre cómo decide make qué hacer. La opción -d es equivalente a ‘--debug=a’ (ver a continuación).

‘--debug[=options]’

impresión Información de depuración además del procesamiento normal. Se pueden elegir varios niveles y tipos de salida. Sin argumentos, imprima el nivel "básico" de depuración. Los posibles argumentos están debajo; solo se considera el primer carácter, y los valores deben estar separados por comas o espacios.

a (todos) Todos los tipos de salida de depuración están habilitados. Esto es equivalente a usar '-d'.

b (básico) impresiones de depuración básicos cada objetivo que se ha encontrado para ser fuera de fecha, y si la construcción se ha realizado correctamente o no.

v (detallado) Un nivel por encima de ‘basic’; incluye mensajes sobre qué makefiles se analizaron, requisitos previos que no necesitaban ser reconstruidos, etc. Esta opción también habilita los mensajes ‘basic’.

i (implícita) Imprime mensajes que describen las búsquedas de reglas implícitas para cada objetivo. Esta opción también habilita los mensajes ‘basic’.

j (trabajos) Imprime mensajes que dan detalles sobre la invocación de subcomandos específicos.

m (makefile) De forma predeterminada, los mensajes anteriores no están habilitados al intentar volver a crear los archivos MAKE. Esta opción habilita mensajes mientras reconstruye archivos make también. Tenga en cuenta que la opción ‘all’ habilita esta opción. Esta opción también habilita los mensajes ‘basic’.

Otra opción es utilizar remake - una versión parcheada de GNU Make que se suma la presentación de informes de error mejorado, la capacidad de rastrear la ejecución, y un depurador.

2

ElectricMake puede generar una versión XML-marcada en marcha de su registro de generación con una gran cantidad de información que pueda ayudar en esta situación:

  • La totalidad de líneas de comandos para todos los comandos invocados durante la construcción (incluso aquellos que fueron marcados como comandos "silenciosos" con el modificador @).
  • El origen (archivo y número de línea) de los comandos invocados.
  • Tiempo de ejecución de los comandos.
  • Relaciones de dependencia entre los objetivos en la compilación.
  • Relación estructural entre objetivos y marcas recursivas en la compilación.
  • Archivos leídos/escritos por los comandos invocados en la compilación.

He aquí una muestra de esa producción:

<job id="J0824ab08" thread="5e72bb0" node="linbuild1-2" type="rule" name="../../i686_Linux/testmain/testmain.d" file="../config/rules.mak" line="109"> 
<command line="110"> 
<argv>echo Rebuilding '../../i686_Linux/testmain/testmain.d'</argv> 
<output src="prog">Rebuilding ../../i686_Linux/testmain/testmain.d 
</output> 
</command> 
<command line="111-114"> 
<argv>set -e; g++ -MM -w -DUSE_PROFILING -DUSE_LOGGING -DHAVE_UNIX -DHAVE_LINUX -I.. testmain.cpp \ 
     | sed 's!\(testmain\)\.o[ :]*!../../i686_Linux/testmain/\1.o '../../i686_Linux/testmain/testmain.d' : !g' \ 
     &gt; '../../i686_Linux/testmain/testmain.d'; \ 
     [ -s '../../i686_Linux/testmain/testmain.d' ] || touch '../../i686_Linux/testmain/testmain.d'</argv> 
</command> 
<opList> 
<op type="read" file="/home/ericm/src/testmain/testmain.cpp"/> 
<op type="read" file="/home/ericm/src/minidumper/ExceptionReport.h"/> 
<op type="read" file="/home/ericm/src/util/ECAssert.h"/> 
<op type="create" file="/home/ericm/i686_Linux/ecloud/testmain/testmain.d" found="0"/> 
</opList> 
<timing invoked="1.919926" completed="3.600491" node="linbuild1-2"/> 
<waitingJobs idList="J0824ae38"/> 
</job> 

How to Quickly Navigate an Unfamiliar Makefile muestra un ejemplo del uso del registro de generación anotada para encontrar su camino alrededor de un makefile.

Data Mining ElectricAccelerator Annotation muestra cómo puede usar el registro de compilación anotado para generar una lista de materiales para la compilación.

ElectricMake es compatible con GNU Make, por lo que puede procesar archivos make que funcionen con GNU make.

Descargo de responsabilidad: Soy el arquitecto y desarrollador principal de ElectricAccelerator.

+0

¡Hola Eric! Soy un usuario de marca eléctrica. Genial para verte publicar. La cantidad de registros de depuración y opciones integradas en emake es bastante asombrosa. Gran producto, lo recomendaría. – ThePosey

Cuestiones relacionadas