Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

strace und ltrace — Debugging

17. 08. 2025 Aktualisiert: 27. 03. 2026 2 Min. Lesezeit intermediate

Wenn Logs nicht helfen und eine Anwendung sich unerwartet verhaelt, sind strace und ltrace das Sicherheitsnetz. Strace erfasst Systemaufrufe — jede Interaktion zwischen einem Prozess und dem Kernel, vom Oeffnen von Dateien ueber Netzwerkkommunikation bis zur Speicherallokation. Ltrace verfolgt Bibliotheksfunktionsaufrufe. Diese Werkzeuge decken Probleme auf, die in Logs nicht sichtbar sind: fehlende Dateien, verweigerte Berechtigungen, Netzwerk-Timeouts oder unerwartetes Systemverhalten.

strace

strace ls /tmp                         # gesamten Befehl verfolgen
strace -p 1234                         # an laufenden Prozess anhaengen
strace -e open,read,write ls /tmp      # nur bestimmte Syscalls filtern
strace -c ls /tmp                      # Zusammenfassung — Syscall-Statistiken

Beispiele

strace -e openat ./app 2>&1 | grep error       # Fehler beim Dateioeffnen finden
strace -e write -p $(pgrep myapp)               # beobachten, was der Prozess schreibt
strace -c -p $(pgrep myapp)                     # wo die Zeit verbraucht wird — Syscall-Profiling
strace -e network -p $(pgrep myapp)             # nur Netzwerkoperationen
strace -T -e read,write -p $(pgrep myapp)       # mit Zeitstempeln fuer jeden Syscall

Ein typischer Debugging-Workflow: Zuerst strace -c ausfuehren, um zu identifizieren, welche Syscalls die meiste Zeit verbrauchen, dann strace -e mit einem spezifischen Filter fuer detaillierte Analyse. Bei der Untersuchung von Netzwerkproblemen zeigt der Filter connect,sendto,recvfrom den Verbindungsaufbau und die Kommunikation.

ltrace

ltrace ./my-program                    # Library Calls verfolgen
ltrace -e malloc+free ./my-program     # Speicherallokationen ueberwachen

ltrace ist nuetzlich fuer das Debugging von Memory Leaks (Verfolgung von malloc/free-Paaren), die Analyse der Leistung von Bibliotheksaufrufen und das Verstaendnis, wie eine Anwendung mit externen Bibliotheken interagiert.

  • -f = Kindprozesse verfolgen (fork/exec)
  • -s 1000 = laengere Strings in Argumenten anzeigen
  • -T = Zeitaufwand fuer jeden Aufruf anzeigen
  • In Produktion nur kurzzeitig verwenden — strace verlangsamt den verfolgten Prozess erheblich

Ultimatives Debugging

strace spart Stunden beim Troubleshooting, indem es genau zeigt, was ein Prozess auf Betriebssystemebene tut. Kombinieren Sie es mit perf fuer Leistungsanalyse und gdb fuer Debugging auf Code-Ebene.

straceltracedebugging
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.