Herramienta para rastrear llamadas de biblioteca en Linux / ARM

8

Estoy buscando una herramienta que permita rastrear llamadas a funciones en bibliotecas compartidas en Linux / ARM. Básicamente, quiero poder especificar una línea de comando y dejar que esta herramienta produzca un registro de las funciones de biblioteca llamadas y los argumentos pasados. Me imagino que podría usarse alguna forma de enganche de funciones para esto.

Soy consciente de ltraceque proporciona exactamente la funcionalidad que necesito. Sin embargo, ltraceno funciona para mí, ya que:

  • a menudo segfaults al rastrear programas más complejos.
  • es muy lento.

Estoy buscando una alternativa más robusta. La velocidad es buena, pero no es mi principal preocupación. Principalmente, me gustaría tener un medio para rastrear las llamadas de la biblioteca que puedan analizar cualquier programa (no evasivo).

Sysdig tampoco funciona en ARM, y el puerto de dtrace todavía funciona en beta solo en NetBSD.

¿Alguien sabe de una herramienta de este tipo en un estado utilizable?

j0ker
fuente

Respuestas:

1

¿Has mirado en LTTng ? Es un marco de seguimiento de kernelspace / userspace que funciona en varias arquitecturas, incluida ARM.

Puede configurar el rastreo para el código de espacio de usuario con LTTng-UST . Pero tendría que recompilar las bibliotecas compartidas que desea rastrear, con sus puntos de rastreo LTTng agregados.

Aquí hay una guía de los documentos oficiales de lttng sobre cómo configurar el rastreo del espacio de usuario: Rastreando su propia aplicación de usuario

No sé si esto sería útil en su caso, pero también hay un hilo de desbordamiento de pila en la compilación / instalación de lttng en plataformas integradas (incluido ARM): ¿Cómo construyo e implemento LTTng en un sistema Linux incorporado?

J. Taylor
fuente