Inhaltsverzeichnis
strace ..... ein Lieblingsprogramm von mir
Zitat von Juhu am 12. Oktober 2026, 13:31 UhrWas soll ich sagen, es ist und bleibt DAS Lieblingsprogramm von mit. Wann immer ich ein Problem mit irgend einer Software habe, schaue ich mir mit strace an, was das Programm so macht. Wenn man dann den source-Code zur Hand hat könnte es passieren, dass das Problem ruckzuck keines mehr ist.
Ich lernte strace auf der SUN-Sparc kennen und schätzen.
Was kann strace?
strace protokolliert alle Systemaufrufe (syscall) und auch die Aufrufparameter. Damit kann man erkennen, was so innerhalb des Programmes passiert. Aber auch welche Programmsprünge ein Programmierer eingebaut hat.
Das Programm wird bei der Systeminstallation mitinstalliert und ist sofort abrufbereit. Aber Achtung: es werden viele Informationen gesammelt und durch das permanente Unterbrechen des Ablaufes kommt es zu Performanceverlust am mitgetraceten Programm.
Das erste Beispiel
strace ls
Die Ausgabe erfolgt dann auf stderr auf den Bildschirm und schaut so aus.
execve("/usr/bin/ls", ["ls"], 0x7ffebdeb98d0 /* 43 vars */) = 0 brk(NULL) = 0x560639e12000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa220e2e000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=134971, ...}) = 0 mmap(NULL, 134971, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa220e0d000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "177ELF211 3 >