Linuxtag: Großes Konsolen-Kino mit Strace
Auf dem Linuxtag hat Harald König von Science and Computing eine kurzweilige Sitzung über das Diagnosetool Strace abgehalten.
Das Programm wird zusammen mit einem Kommando aufgerufen, dann protokolliert es dessen Dateizugriffe, System Calls, Datenfluss, Timestamps sowie Kernel Delay und gibt statistische Informationen aus. König nahm den Teilnehmern Berührungsängste mit dem Thema Tracing und forderte "Mut zur Lücke": Mit den Worten: "Jetzt schau ich mal, was ich in diesen Zeilen verstehe" zeigte er in einem ersten Schritt Dateipfade, Systemaufrufe und Rückgabewerte.
Strace eignet sich auch zur Analyse von Programmen, die der Anwender noch kaum kennt: Welche Konfigurationsdateien und Biblioteken versucht es zu öffnen? Die Option "-e file" veranlasst Strace, alle erfolgten Dateioperationen zu zeigen. Auch proprietären Programmen wie Adobe Reader kann man so auf die Finger schauen.
Selbst Netzwerkprobleme lasssen sich mit dem Tool debuggen. Ein Strace auf den Downloader Wget etwa zeigt, dass dieser sich mit einem Port 53 verbinden möchte. Ein Blick in "/etc/services" offenbart, dass es sich um eine DNS-Anfrage handelt. Die Option "-t" gibt Timestamps an, Timeouts nach 60 Sekunden beispielsweise sind typisch für Nameserver-Anfragen. Mit den passenden Sort-Filtern ermittelte Harald König zudem auf einem bildschirmfüllenden Xterm, welche Calls sich am längsten im Kernel aufgehalten hatten. Zur Krönung verwandelte er die Daten noch ad hoc in einen Gnuplot-Graphen ("Das ist nur Data Processing mit Siebziger-Jahre-Methoden").
Ein weiterer Tipp des bärtigen IT-Profis: Aufgezeichnete System Calls lassen sich zu einem einfachen C-Programmtext zusammenstellen und kompilieren, um Probleme mit einem Programm zu reproduzieren und zu analysieren.
Harald König zauberte eine Stunde lang so munter und rasch auf der Shell herum, dass eine Besucherin später scherzhaft fragte, ob denn seine Bash-History auch zum Download zur Verfügung stehe.





