Articulo de referencia

ltrace

ltrace es una utilidad de depuración en Linux , que se utiliza para mostrar las llamadas que una aplicación de espacio de usuario realiza a las bibliotecas compartidas . Descrip...

ltrace es una utilidad de depuración en Linux , que se utiliza para mostrar las llamadas que una aplicación de espacio de usuario realiza a las bibliotecas compartidas .

Descripción general

Lo hace enganchándose al sistema de carga dinámica , lo que le permite insertar adaptadores que muestran los parámetros que la aplicación utiliza al realizar la llamada y el valor de retorno que informa la llamada a la biblioteca. ltrace también puede rastrear llamadas al sistema Linux . Debido a que utiliza el mecanismo de enganche de biblioteca dinámica, ltrace no puede rastrear llamadas a bibliotecas que están vinculadas estáticamente directamente al binario de destino. Desde la versión 0.7.3, ltrace también puede rastrear llamadas a bibliotecas que se cargan usando dlopen .

Ejemplo de salida

A continuación se muestran las primeras líneas de una invocación de xterm . Se observa que ltrace muestra llamadas a diversas bibliotecas, incluyendo la biblioteca estándar de C ( malloc , strlen ), bibliotecas POSIX (getuid), funciones intrínsecas del kit de herramientas X (XtOpenApplication) y la biblioteca de comunicación entre clientes X11 (IceAddConnectionWatch). El valor de retorno de cada llamada se muestra después del símbolo =.

[pid 11783] __libc_start_main(0x407420, 1, 0x7fff75b6aad8, 0x443cc0, 0x443d50 <sin terminar ...> [pid 11783] geteuid() = 1000 [pid 11783] getegid() = 1000 [pid 11783] getuid() = 1000 [pid 11783] getgid() = 1000 [pid 11783] setuid(1000) = 0 [pid 11783] malloc(91) = 0x00cf8010 [pid 11783] XtSetLanguageProc(0, 0, 0, 0x7f968c9a3740, 1) = 0x7f968bc16220 [pid 11783] ioctl(0, 21505, 0x7fff75b6a960) = 0 [pid 11783] XtSetErrorHandler(0x42bbb0, 0x44f99c, 0x669f80, 146, 0x7fff75b6a72c) = 0 [pid 11783] XtOpenApplication(0x670260, 0x44f99c, 0x669f80, 146, 0x7fff75b6a72c) = 0xd219a0 [pid 11783] IceAddConnectionWatch(0x42adc0, 0, 0, 0x7f968c9a3748, 0 <sin terminar ...> [pid 11783] IceConnectionNumber(0xd17ec0, 0, 1, 0xcfb138, 0xd17c00) = 4 [pid 11783] <... IceAddConnectionWatch reanudado> ) = 1 [pid 11783] XtSetErrorHandler(0, 0, 1, 0xcfb138, 0xd17c00) = 0 [pid 11783] XtGetApplicationResources(0xd219a0, 0x6701c0, 0x66b220, 34, 0) = 0 [pid 11783] strlen("off") = 3

Véase también

  • strace : rastreador de llamadas al sistema para Linux
  • ktrace – rastreador de llamadas al sistema para *BSD
  • DTrace : herramienta de rastreo del kernel para Solaris, OS X, BSD y Windows.
  • SystemTap : herramienta de rastreo del kernel de Linux

Referencias

  • Sitio web oficial
  • ltrace(1) Manual de comandos generales de Linux de ManKier.com 
  • Rodrigo Rubira Branco, Ltrace Internals , Simposio de Linux en Ottawa 2007
  • latrace , un rastreador de llamadas de biblioteca dinámica que funciona utilizando la función LD_AUDIT de libc.