Tool zum Verfolgen von Bibliotheksaufrufen in Linux / ARM

8

Ich bin auf der Suche nach einem Tool, mit dem sich Aufrufe von Funktionen in gemeinsam genutzten Bibliotheken in Linux / ARM verfolgen lassen. Grundsätzlich möchte ich in der Lage sein, eine Befehlszeile anzugeben und dieses Tool einen Datensatz der aufgerufenen Bibliotheksfunktionen und der übergebenen Argumente erstellen zu lassen. Ich stelle mir vor, dass hierfür eine Art Funktions-Hooking verwendet werden könnte.

Mir ist bewusst ltrace, welche Funktionalität genau ich benötige. Funktioniert aber ltracebei mir nicht so:

  • Bei der Verfolgung komplexerer Programme treten häufig Fehler auf.
  • ist sehr langsam.

Ich suche eine robustere Alternative. Geschwindigkeit ist nett, aber nicht mein Hauptanliegen. In erster Linie hätte ich gerne ein Mittel zum Verfolgen von Bibliotheksaufrufen, mit dem jedes (nicht ausweichende) Programm analysiert werden kann.

Sysdig funktioniert auch nicht in ARM und der Port von dtrace funktioniert nur in NetBSD in der Beta.

Kennt jemand ein solches Werkzeug in einem brauchbaren Zustand?

j0ker
quelle

Antworten:

1

Haben Sie sich LTTng angesehen ? Es handelt sich um ein Kernelspace / Userspace-Tracing-Framework, das auf mehreren Architekturen einschließlich ARM funktioniert.

Mit LTTng-UST können Sie die Ablaufverfolgung für den Userspace-Code einrichten . Sie müssen jedoch die gemeinsam genutzten Bibliotheken, die Sie verfolgen möchten, mit Ihren LTTng-Tracepoints neu kompilieren.

Hier ist eine Anleitung aus den offiziellen Lttng-Dokumenten zum Einrichten der Benutzerbereichsverfolgung : Verfolgen Ihrer eigenen Benutzeranwendung

Ich weiß nicht, ob dies in Ihrem Fall hilfreich wäre, aber es gibt auch einen Stapelüberlauf-Thread zum Kompilieren / Installieren von LTTng auf eingebetteten Plattformen (einschließlich ARM): Wie erstelle ich LTTng und stelle es auf einem eingebetteten Linux-System bereit?

J. Taylor
quelle