24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

176 2 <strong>UNIX</strong><br />

dabei vielfältige Möglichkeiten, <strong>in</strong> den Ablauf e<strong>in</strong>zugreifen. E<strong>in</strong> absoluter<br />

Debugger wie der adb(1) bezieht sich dabei auf das lauffähige Programm<br />

im Arbeitsspeicher – nicht auf den Quellcode – und ist somit für die meisten<br />

Aufgaben wenig geeignet. E<strong>in</strong> symbolischer Debugger wie der sdb(1)<br />

oder der xdb(1) bezieht sich auf die jeweilige Stelle im Quelltext39 . Debugger<br />

s<strong>in</strong>d mächtige und hilfreiche Werkzeuge. Manche Programmierer gehen<br />

so weit, daß sie das Schreiben e<strong>in</strong>es Programms als Debuggen e<strong>in</strong>es leeren<br />

Files bzw. e<strong>in</strong>es weißen Blattes Papier ansehen. In der Übung wird e<strong>in</strong>e e<strong>in</strong>fache<br />

Anwendung des Debuggers vorgeführt.<br />

Falls Sie auch mit dem <strong>UNIX</strong>-Debugger nicht alle Würmer <strong>in</strong> Ihrem Programm<br />

f<strong>in</strong>den und vertreiben können, möchten wir Ihnen noch e<strong>in</strong> altes<br />

Hausrezept verraten, das aus e<strong>in</strong>er Handschrift des 9. Jahrhunderts stammt.<br />

Das Rezept ist im Raum Wien – München entstanden und unter den Namen<br />

Contra vermes oder Pro nescia bekannt. Leider ist das README-File, das<br />

die Handhabung erklärt, verlorengegangen. Wir schlagen vor, die Zeilen als<br />

Kommentar <strong>in</strong> das Programm e<strong>in</strong>zufügen. Hier der Text:<br />

Gang út, nesso, mid nigun nessikl<strong>in</strong>on,<br />

ût fana themo marge an that bên,<br />

fan thêmo bêne an that flêsg,<br />

ût fan themo flêsgke an thia hûd,<br />

ût fan thera hûd an thesa strâla.<br />

Droht<strong>in</strong>. Uuerthe sô!<br />

2.7.26 Profiler (time, gprof)<br />

Profiler s<strong>in</strong>d ebenfalls Programme, unter deren Kontrolle e<strong>in</strong> zu untersuchendes<br />

Programm abläuft. Ziel ist die Ermittlung des Zeitverhaltens <strong>in</strong> der<br />

Absicht, das Programm schneller zu machen. E<strong>in</strong> e<strong>in</strong>faches <strong>UNIX</strong>-Werkzeug<br />

ist time(1):<br />

time prim 1000000<br />

Die Ausgabe sieht so aus:<br />

real 0m 30.65s<br />

user 0m 22.53s<br />

sys 0m 1.07s<br />

und bedeutet, daß die gesamte Laufzeit des Programms prim 30.65 s betrug,<br />

davon entfielen 22.53 s auf die Ausführung von Benutzeranweisungen<br />

und 1.07 s auf Systemtätigkeiten. Die Ausgabe wurde durch e<strong>in</strong>en Aufruf des<br />

Primzahlenprogramms aus Abschnitt ?? E<strong>in</strong> Herz für Po<strong>in</strong>ter auf Seite ?? erzeugt,<br />

das selbst Zeiten mittels des Systemaufrufs time(2) mißt und rund<br />

22 s für die Rechnung und 4 s für die Bildschirmausgabe meldet.<br />

39 Real programmers don’t use source language debuggers.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!