ltrace ist ein Bibliotheksaufruf-Tracer für Linux: Es protokolliert, welche Funktionen aus dynamischen Bibliotheken (zum Beispiel libc) ein Programm aufruft — samt Argumenten und Rückgabewerten. Damit ergänzt es strace, das nur die Systemaufrufe des Kernels zeigt.
Grundlegende Aufrufe
ltrace ./programm # alle Bibliotheksaufrufe anzeigen
ltrace -c ./programm # Zusammenfassung: Aufruf-Zähler und Zeitanteile
ltrace -e malloc+free ./programm # nur bestimmte Funktionen filtern
ltrace -p <PID> # an laufenden Prozess anhängen
ltrace -S ./programm # zusätzlich Systemaufrufe zeigen
Praxis-Tipps
- Der Filter
-eakzeptiert Ausdrücke wie-e malloc+freeoder-e 'libc:*'(alle libc-Funktionen) -fverfolgt Kindprozesse,-o dateischreibt die Ausgabe in eine Datei-tbzw.-ttfügen Zeitstempel hinzu,-Tmisst die Dauer jedes Aufrufs-a Spalterichtet die Rückgabewerte an einer Spalte aus (Standard 40)
Einordnung
ltrace nutzt wie strace-Befehle die ptrace-Schnittstelle, arbeitet aber eine Ebene höher: Es zeigt die Funktionen im Userland, nicht die Syscalls. Für die Frage „welche Bibliotheksfunktion wird wie oft aufgerufen?“ ist ltrace das passende Werkzeug, während perf-Befehle die CPU-Last messen.
Verwandte Grundlagen: perf-Befehle (Performance-Profile), readelf-Befehle (ELF-Struktur).