Provided by: manpages-es-extra_0.8a-17_all bug

NOMBRE

       gprof - muestra datos de perfilado con grafo de llamadas

SINOPSIS

       gprof  [  -abcsz  ] [ -e|-E nombre ] [ -f|-F nombre ] [ -k nombreorigen
       nombredestino ] [ fichobj [ gmon.out ] ]

DESCRIPCI'ON

       gprof produce un perfil de  ejecucion  de  programas  en  C,  Pascal  o
       FORTRAN77.  El efecto de las rutinas llamadas se incorpora en el perfil
       de cada llamador. Los datos del perfil se toman del fichero  de  perfil
       de  grafos  de  llamada  (`gmon.out'  por  omision)  que  es creado por
       programas que se han compilado con la opcion -pg  de  cc(1),  pc(1),  y
       f77(1).   La  opcion  -pg  tambien  enlaza al programa versiones de las
       rutinas de biblioteca que estan compiladas para la perfilacion.   Gprof
       lee  el  fichero objeto dado (el predeterminado es `a.out') y establece
       la relacion entre su tabla de simbolos y el perfil de grafo de llamadas
       de `gmon.out'.  Si se especifica mas de un fichero de perfil, la salida
       de gprof muestra la suma de la informacion de perfilado en los ficheros
       de perfil dados.

       Gprof  calcula la cantidad de tiempo empleado en cada rutina.  Despues,
       estos tiempos se propagan a lo largo  de  los  vertices  del  grafo  de
       llamadas. Se descubren los ciclos, y se hace que las llamadas dentro de
       un ciclo compartan el tiempo del ciclo.  El primer listado muestra  las
       funciones  clasificadas de acuerdo al tiempo que representan incluyendo
       el tiempo de sus descendientes en su grafo de llamadas.  Debajo de cada
       entrada  de  funcion  se  muestran  sus  hijos  (directos) del grafo de
       llamadas, y como sus tiempos se propagan a esta funcion.  Un despliegue
       similar sobre la funcion muestra como el tiempo de esta funcion y el de
       sus descendientes se propagan a sus  padres  (directos)  del  grafo  de
       llamadas.

       Tambien  se muestran los ciclos, con una entrada para el ciclo completo
       y un listado da los miembros del ciclo y sus contribuciones al tiempo y
       numero de llamadas del ciclo.

       En  segundo  lugar,  se  da  un  perfil plano, similar al producido por
       prof(1).  Este listado de los tiempos de ejecucion totales, los numeros
       de  llamadas,  el  tiempo  en  milisegundos que la llamada empleo en la
       propia rutina, y el tiempo en ms que la llamada  empleo  en  la  propia
       rutina pero incluyendo sus descendientes.

       Finalmente, se proporciona un indice de los nombres de funcion.

OPCIONES

       Se dispone de las siguientes opciones:

       -a     suprime  la impresion de las funciones declaradas estaticamente.
              Si se da esta opcion, toda la informacion de  interes  sobre  la
              funcion estatica (static) (p.ej.: muestras de tiempo, llamadas a
              otras funciones, llamadas desde otras funciones) pertenece a  la
              funcion cargada justo antes de la funcion estatica en el fichero
              `fichobj'.

       -b     suprime la impresion de una descripcion  de  cada  campo  en  el
              perfil.

       -c     el  grafo de llamadas estatico del programa se descubre mediante
              un metodo heuristico que examina el espacio de texto del fichero
              objeto.  Los padres o hijos estaticos se muestran con numeros de
              llamadas 0.

       -e nombre
              suprime la impresion de la entrada de perfil de  grafo  para  la
              rutina  nombre  y  todos sus descendientes (a menos que tuvieran
              otros ancestros que no se supriman).  Se puede dar  mas  de  una
              opcion -e.  Solo un nombre se puede dar con cada opcion -e.

       -E nombre
              suprime  la  impresion  de la entrada de perfil de grafo para la
              rutina nombre (y sus descendientes) como -e, arriba,  y  tambien
              excluye  el  tiempo transcurrido en nombre (y sus descendientes)
              de los calculos del total y  del  porcentaje  de  tiempo.   (Por
              ejemplo, -E mcount -E mcleanup es lo predeterminado.)

       -f nombre
              imprime  la  entrada  del  perfil  de  grafo  de  solo la rutina
              especificada en nombre y sus descendientes.  Se puede dar mas de
              una opcion -f.  Solo se puede dar un nombre con cada opcion -f.

       -F nombre
              imprime  la entrada del perfil de grafo de solo la rutina nombre
              y sus descendientes (como -f, arriba) y tamiben emplea solo  los
              tiempos  de  las  rutinas  mostradas  en los calculos de total y
              porcentaje de tiempos.  Se puede dar mas de una opcion -F.  Solo
              un  nombre  se puede dar con cada opcion -F.  La opcion -F tiene
              preferencia sobre la -E.

       -k nombreorigen nombredestino
              borrara cualesquiera arcos desde la  rutina  nombreorigen  a  la
              rutina  nombredestino.   Esto puede emplearse para romper ciclos
              no deseados.  Se puede dar mas de una opcion -k.  Solo se  puede
              dar un par de nombres de rutina con cada opcion -k.

       -s     se   produce   un  fichero  de  perfil  llamado  `gmon.sum'  que
              representa la suma de la informacion  de  perfil  en  todos  los
              ficheros  de  perfil  especificados.  Este fichero de sumario de
              perfil se puede pasar mas tarde a  otras  ejecuciones  de  gprof
              (probablemente  tambien con -s) para acumular datos de perfilado
              entre varias ejecuciones de un fichero `fichobj'.

       -v     muestra el numero de version de gprof, y luego acaba.

       -z     muestra rutinas con utilizacion cero (segun se  muestra  en  los
              numeros  de  llamada  y  tiempo acumulado).  Esto es util con la
              opcion -c para descubrir que rutinas no se llaman nunca.

FICHEROS

       a.out    la lista de nombres y espacio de texto.
       gmon.out grafo de llamadas dinamico y perfil.
       gmon.sum resumen de grafo de llamadas dinamico y perfil.

V'EASE TAMBI'EN

       monitor(3), profil(2), cc(1), prof(1)

       ``An Execution Profiler for  Modular  Programs'',  por  S.  Graham,  P.
       Kessler,  M. McKusick; Software - Practice and Experience, Vol. 13, pp.
       671-685, 1983.

       ``gprof: A Call Graph Execution Profiler'', por S. Graham, P.  Kessler,
       M.  McKusick;  Proceedings  of  the  SIGPLAN  '82 Symposium on Compiler
       Construction, SIGPLAN Notices, Vol. 17, No  6, pp.  120-126,  Junio  de
       1982.

HISTORIA

       Gprof aparecio en 4.2 BSD.

FALLOS

       Se  muestra  la  granularidad  del  muestreo, pero como mucho permanece
       estadistica.  Suponemos que  el  tiempo  para  cada  ejecucion  de  una
       funcion  se puede expresar por el tiempo total para la funcion dividido
       por el numero de veces que  la  funcion  es  llamada.   Asi  el  tiempo
       propagado  a  traves de los arcos del grafo de llamadas a los padres de
       la fnucion es directamente proporcional al numero de veces que ese arco
       es atravesado.

       Los  padres que no son ellos mismos perfilados tendran el tiempo de sus
       hijos perfilados propagados a ellos,  pero  apareceran  como  invocados
       espontaneamente en el listado de grafo de llamadas, y su tiempo no sera
       propagado mas alla.  Similarmente, los capturadores de senales,  aunque
       se  perfilen,  apareceran  como  espontaneos  (aunque  por  razones mas
       oscuras).   Cualesquier  hijos  perfilados  de  capturadores  de  senal
       deberian  tener  sus  tiempos  correctamente propagados, a menos que el
       capturador de senal fuera invocado durante la ejecucion  de  la  rutina
       perfilandose, en cuyo caso se  pierde todo.

       El  programa  perfilado debe llamar a exit(2) o acabar normalmente para
       que la informacion de perfil se guarde en el fichero `gmon.out'.

                              29 de Enero de 1993                     GPROF(1)