Ejemplos del mandato curt
La preparación de la entrada del mandato curt es un proceso de tres etapas.
Los archivos de rastreo y nombre se generan utilizando el proceso siguiente:
- Cree el rastreo sin formato. En una máquina de 4 vías, esto creará archivos como se indica en el código de ejemplo siguiente. Se genera un archivo de rastreo en bruto por CPU. Los archivos se denominan trace.raw-0, trace.raw-1, etc. para cada CPU. También se genera un archivo adicional denominado trace.raw . Este es un archivo maestro que tiene información que vincula los otros rastreos específicos de la CPU.Nota: Si desea información de pthread en el informe curt , debe añadir el directorio libpthreads instrumentado a la vía de acceso de biblioteca, LIBPATH, al crear el rastreo. De lo contrario, la sentencia
export LIBPATHdel ejemplo siguiente no es necesaria. - Fusionar los archivos de rastreo. Para fusionar los archivos de rastreo en bruto de CPU individuales para formar un archivo de rastreo, ejecute el mandato trcrpt . Si está rastreando una máquina uniprocesador, este paso no es necesario.
- Cree los archivos gensymsfile y trcnmfile de soporte ejecutando los mandatos gensyms y trcnm. Ni el archivo gensymsfile ni el archivo trcnmfile son necesarios para que se ejecute el mandato curt . Sin embargo, si proporciona uno o ambos de estos archivos, o si utiliza el mandato trace con la opción -n , el mandato curt genera nombres para llamadas del sistema y manejadores de interrupciones en lugar de sólo direcciones. La salida del mandato gensyms incluye más información que la salida del mandato trcnm y, por lo tanto, mientras que el archivo trcnmfile contendrá la mayor parte de los datos de correlación de dirección a nombre importantes, un archivo gensymsfile habilitará el mandato curt para generar más nombres y es la dirección preferida para el mandato de recopilación de datos de correlación de nombres.
A continuación se muestra un ejemplo de cómo generar archivos de entrada para el mandato curt :
# HOOKS="100,101,102,103,104,106,10C,119,134,135,139,200,210,215,38F,419,465,47F,488,489,48A,
48D,492,605,609"
# SIZE="1000000"
# export HOOKS SIZE
# trace -n -C all -d -j $HOOKS -L $SIZE -T $SIZE -afo trace.raw
# export LIBPATH=/usr/ccs/lib/perf:$LIBPATH
# trcon ; pthread.app ; trcstop
# unset HOOKS SIZE
# ls trace.raw*
trace.raw trace.raw-0 trace.raw-1 trace.raw-2 trace.raw-3
# trcrpt -C all -r trace.raw > trace.r
# rm trace.raw*
# ls trace*
trace.r
# gensyms > gensyms.out
# trcnm > trace.nm