Ist ein ausführbares Programm für den CXpa vorbereitet, startet man mit
``cpa FILENAME'' den CXpa und muß nun auswählen, welche Art von
Informationen man sammeln möchte. Dazu kann man sich zunächst mit dem
``list''-Kommando im Source-Code ansehen, an welche Stellen man überhaupt
Monitor-Punkte setzen kann. Zeilen, die den Beginn einer Routine, einer
Schleife oder eines Blocks bilden, werden (falls das Programm entsprechend
präpariert wurde) durch ``r'', ``l'' oder ``b'' markiert. Sind schon
Monitor-Punkte ausgewählt, werden diese durch die entsprechenden
Großbuchstaben im Listing angezeigt.
Das list-Kommando ist sehr vielseitig: Mit
list [VON [BIS]]
bzw.
list file FILENAME [VON] [BIS]
kann man sich den angegebenen Bereich des aktuellen bzw. des angegebenen
Files ansehen, standardmäßig jeweils 10 Zeilen. Mit
list monitors ROUTINE
list monitors at VON BIS
werden nur die Zeilen der Routine oder des Bereichs angezeigt, die
Monitor-Punkte enthalten.
Nun kann man mit dem ``monitor''-Kommando Routinen, Schleifen oder Blöcke
(je nach Compiler-Option) auswählen bzw. mit dem ``deselect''-Kommando
wieder abschalten. Mit jedem neuen ``monitor''- bzw. ``deselect''-Befehl
werden
Punkte hinzugefügt bzw. weggenommen, bis man die gewünschte Auswahl
erreicht hat. Schleifen auszuwählen ist allerdings nur dann sinnvoll, wenn
man mindestens mit der Optimierungsstufe -O1 übersetzt hat, sonst sind die
Meßergebnisse falsch!
Alle überhaupt im Programm vorhandenen Monitor-Punkte werden ausgewählt
mit dem Kommando
monitor all ;
etwas spezieller bekommt man alle Routinen, alle Schleifen oder alle
Blöcke mit
monitor TYPE all, TYPE = routine, loop, block
(oder pregion, s. 4.4.3).
Einzelne Routinen kann man auswählen mit
monitor routine ROUTINE1 ... ,
alle Punkte oder alle Schleifen oder Blöcke in einer Routine mit
monitor ROUTINE
monitor loop in ROUTINE
monitor block in ROUTINE .
Ganz spezifisch kann man schließlich einzelne Punkte auswählen, indem man
die Zeilennummer und ggf. den Source-File-Namen - falls nicht das aktuelle
File gemeint ist - angibt:
monitor at [FILE:]NUMMER .
Zu jedem ``monitor''-Kommando gibt es das zugehörige ``deselect''-Kommando,
mit dem man die entsprechenden Punkte wieder löschen kann. Auf diese Weise
kann man z.B. mit einem globalen ``monitor''-Befehl viele Punkte setzen und
einzelne mit deselect wieder löschen, oder aber für einen zweiten Lauf,
bei dem man an ganz anderen Werten interessiert ist, gleich viele Punkte
auf einmal löschen.
Diese Vielfalt an Möglichkeiten sieht zwar beeindruckend aus, in der
Praxis wird man aber meistens mit ``monitor [TYPE] all'' arbeiten und sich
dann aus den Ergebnislisten die interessierenden Daten herauspicken.
Peter Junglas 18.10.1993