Auswahl des Bereichs

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.

previous    contents     next

Peter Junglas 18.10.1993