Mit dieser Funktion erhalten Sie Statistikinformationen darüber, welche Statement-Zeilen aufgerufener Natural-Objekte ausgeführt wurden. Außerdem zeigt die Funktion, wie oft ein Objekt aufgerufen und wie oft eine Statement-Zeile ausgeführt wurde.
Statistikinformationen über die Ausführung von Statements können für folgende Zwecke verwendet werden:
Aufspüren von "totem" Programmcode (der nie ausgeführt wird) in einer Anwendung,
Abschätzen des Abdeckungsgrads eines Anwendungstests (wie viele Statement-Zeilen sind nicht wenigstens einmal beim Testen ausgeführt worden),
Orten von häufig ausgeführten Programmabschnitten, die Auswirkungen auf die Performance der Anwendung haben könnten.
Um die Funktion Statement Execution Statistics Maintenance aufzurufen:
Geben Sie im Hauptmenü Debug Main Menu den Funktionscode
X ein.
Oder:
Geben Sie folgendes Direktkommando ein:
XS
Das Menü Statement Execution Statistics Maintenance wird angezeigt.
Die im Menü Statement Execution Statistics Maintenance zur Verfügung stehenden Funktionen werden im folgenden Abschnitt erklärt. Alle zugehörigen Druckfunktionen sind jedoch im Abschnitt Objekte drucken beschrieben.
Test-Modus für Statement-Ausführungsstatistiken ON/OFF setzen
Funktion Statement Execution Statistics auf ON/OFF/COUNT setzen
Siehe Abschnitt Test-Modus ein- und ausschalten.
Mit dieser Funktion können Sie Statistiken über ausgeführte Statement-Zeilen von Natural-Objekten aktivieren.
Folgende Themen werden behandelt:
Wenn ein Natural-Objekt ausgeführt wird und die Funktion Statement Execution
Statistics auf ON oder COUNT gesetzt ist, werden
alle in einem bestimmten Objekt ausgeführten Statement-Zeilen in einem Statistikbericht
aufgelistet.
Wenn die Option ON gesetzt ist, hält der Debugger nur fest, ob eine
spezifische Statement-Zeile ausgeführt wurde oder nicht.
Wenn die Option COUNT gesetzt ist, zählt der Debugger, wie oft eine
Statement-Zeile ausgeführt wurde
Sie können eine Library und einen Objektnamen angeben, um die Statement-Ausführungsstatistik auf die gewünschten Natural-Objekte einzuschränken. Standardmäßig werden Statistikdaten für alle Objekte in der aktuellen Library gesammelt. Sie können Stern-Notation (*) benutzen, um einen Bereich von Namen anzugeben.
Wenn Sie die Statement-Ausführungsstatistik von ON nach COUNT
oder umgekehrt schalten, sind bereits vorhandene Statistiken davon nicht betroffen,
d.h., ihr Status bleibt auf ON oder COUNT.
Die gesammelten Statistikdaten werden im Debug-Pufferspeicher gespeichert. Die Menge an Speicherplatz, die benötigt wird, um statistische Informationen für ein Objekt zu speichern, ist ungefähr:
(Anzahl der Quellcode-Zeilen) / 8 + 100 Bytes, wenn Statement Execution Statistics auf ON gesetzt ist,
und
(Anzahl der Quellcode-Zeilen) * 4 + 100 Bytes, wenn Statement Execution Statistics auf COUNT gesetzt
ist.
Wenn Sie ein Natural-Objekt ändern, indem Sie Zeilen einfügen oder löschen und die
Zeilen nicht neu nummerieren, bevor Sie es mit dem Kommando
STOW speichern und katalogisieren, kann sich die für die
Statistikdaten des Objekts benötigte Speichermenge erhöhen. Um dies zu vermeiden, können
Sie in Ihrem Editor-Profil die Option Auto Renumber auf
Y (Yes) setzen (siehe Editor-Profil in der
Editoren-Dokumentation) oder das Systemkommando CATALL (siehe
Systemkommandos-Dokumentation) benutzen, und zwar bei
(standardmäßig) eingeschalteter Option Renumber source-codes lines
(Quellcode-Zeilen neu nummerieren).
Sie können das Debugger-Kommando PROFILE benutzen (siehe Kommandos
zum Navigieren und Anzeigen von Informationen), um die Größe des
Debug-Pufferspeichers einzuschränken. Wenn die Option Statement
Execution Statistics auf COUNT gesetzt ist, werden bei
Objekten mit mehr als 8000 Statement-Zeilen keine Statement-Ausführungsstatistiken
erfasst.
Statement-Ausführungsstatistiken unterliegen als Teil der Debug-Umgebung den
Auswirkungen der Direktkommandos SAVE ENVIRONMENT und
LOAD ENVIRONMENT (siehe auch Abschnitt Debug Environment Maintenance - Debug-Umgebung
verwalten).
Dieser Abschnitt beschreibt, wie Sie Statement-Ausführungsstatistiken aktivieren und deaktivieren.
Sie können eine Library und/oder einen Objektnamen angeben, um die Statement-Ausführungsstatistik auf die gewünschten Natural-Objekte einzuschränken. Standardmäßig werden Statistikdaten für alle Objekte in der aktuellen Library gesammelt. Sie können Stern-Notation (*) benutzen, um einen Bereich von Namen anzugeben.
Um Statement-Ausführungsstatistiken zu aktivieren:
Geben Sie im Menü Statement Execution Statistics Maintenance
den Funktionscode S, den Namen einer Library und/oder den Namen eines
Objekts an. Ändern Sie den Wert im Feld State auf
ON.
Oder:
Geben Sie eines der folgenden Direktkommandos ein:
SET XSTATISTICS ON library (object)
oder
SET XSTATISTICS COUNT library (object)
Siehe auch die Syntax des Direktkommandos SET in Debug-Kommandoübersicht und
-syntax.
Wenn Sie keine Library und/oder ein Objekt angeben, werden die Statistikdaten zu allen Objekten in Ihrer aktuellen Library aktiviert.
Um Statement-Ausführungsstatistiken zu deaktivieren:
Geben Sie im Menü Statement Execution Statistics Maintenance
den Funktionscode S, den Namen einer Library und/oder den Namen eines
Objekts an. Ändern Sie den Wert im Feld State auf
OFF.
Oder:
Geben Sie folgendes Direktkommando ein:
SET XSTATISTICS OFF library (object)
Siehe auch die Syntax des Direktkommandos SET in Debug-Kommandoübersicht und
-syntax.
Wenn Sie keine Library und/oder ein Objekt angeben, werden die Statistikdaten zu allen Objekten in Ihrer aktuellen Library deaktiviert.
Um Statement-Ausführungsstatistiken zu löschen:
Geben Sie im Menü Statement Execution Statistics Maintenance
den Funktionscode C, den Namen einer Library und/oder den Namen eines
Objekts an.
Oder:
Geben Sie folgendes Direktkommando ein:
DELETE XSTATISTICS library (object)
Siehe auch die Syntax des Direktkommandos DELETE in Debug-Kommandoübersicht und
-syntax.
Wenn Sie keine Library und/oder ein Objekt angeben, werden die Statistikdaten zu allen Objekten in Ihrer aktuellen Library gelöscht.
Mit dieser Funktion können Sie einen Bildschirm aufrufen, der eine Liste von Statement-Ausführungsstatistiken enthält.
Um Statement-Ausführungsstatistiken anzuzeigen:
Geben Sie im Menü Statement Execution Statistics Maintenance
den Funktionscode D, den Namen einer Library und/oder den Namen eines
Objekts an.
Oder:
Geben Sie folgendes Direktkommando ein:
DISPLAY XSTATISTICS
Der Bildschirm List Statement Execution Statistics wird angezeigt:
16:02:01 ***** NATURAL TEST UTILITIES ***** 2002-02-15
Test Mode ON - List Statement Execution Statistics - Object
All
Co Object Library Type DBID FNR Obj.Called Exec Exec % Total No.
*_______ *_______ n Times able uted Executions
__ TEST SAG Program 10 32 4 20 17 85 95
__ MAP01 SAG Map 10 32 6 2 2 100 12
__ SPGM02 SAG Subprogram 10 32 2 6 2 33 4
__ SAGTEST1 SAG Program 10 32 2 20 10 50 17
__ DEBPGM SAG Program 10 32 1 6 6 100 34 |
Zu jedem Objekt werden folgende Informationen angezeigt:
Aufrufhäufigkeit (Called n Times),
Anzahl der ausführbaren Statements (Exec able),
Anzahl der ausgeführten Statements (Executed),
Prozentsatz (%) der ausgeführten Statements bezogen auf die Gesamtzahl der ausführbaren Statements,
Gesamtzahl der ausgeführten Statements (Total No. Executions).
Falls Daten fehlen oder möglicherweise inkonsistent sind, wird der betroffene Listeneintrag hervorgehoben dargestellt.
Sie können in der Liste einen Eintrag mit einem Zeilenkommando zur Weiterverarbeitung markieren:
| Zeilenkommando | Erklärung |
|---|---|
DE |
Statement-Ausführungsstatistik löschen, s. oben. |
DS |
Alle Statement-Zeilen anzeigen. |
DX |
Nur die ausgeführten Statement-Zeilen anzeigen. |
DN |
Nur die nicht ausgeführten Statement-Zeilen anzeigen. |
I |
Informationen zum katalogisierten Objekt und zu Fehlern anzeigen. |
PS |
Alle Statement-Zeilen drucken. |
PX |
Nur die ausgeführten Statement-Zeilen drucken. |
PN |
Nur die nicht ausgeführten Statement-Zeilen drucken. |
Weitere Informationen zu Druckfunktionen siehe Statements drucken.
Im folgenden Abschnitt werden die Bildschirme beschrieben, die mit den Anzeigekommandos aufgerufen werden können:
Der Bildschirm Display Statement Lines zeigt den Objekt-Quellcode und gibt an, ob eine Statement-Zeile ausgeführt worden ist oder nicht.
Um den Bildschirm Display Statement Lines anzuzeigen:
Markieren Sie im Bildschirm List Statement
Execution Statistics den gewünschten Eintrag mit dem Zeilenkommando
DS.
Oder:
Geben Sie folgendes Direktkommando ein:
DISPLAY STATEMENT library (object)
Siehe auch die Syntax des Direktkommandos DISPLAY in Debug-Kommandoübersicht und
-syntax.
Der Bildschirm Display Statement Lines erscheint. Wenn die
Funktion Statement Execution Statistics auf
COUNT gesetzt worden ist, wird die Ausführungshäufigkeit der
Statements-Zeile angezeigt. Beispiel:
16:04:01 ***** NATURAL TEST UTILITIES ***** 2002-02-15 Test Mode ON - Display Statement Lines - Object SAGTEST Line Source Count 0200 RD1. READ EMPLOYEES-VIEW BY NAME 2 0210 STARTING FROM #NAME-START THRU #NAME-END 0220 * 0230 IF LEAVE-DUE >= 20 1 0240 PERFORM MARK-SPECIAL-EMPLOYEES not executed 0250 ELSE not executed 0260 RESET #MARK 1 0270 END-IF 0280 * 0290 RESET #MAKE #MODEL 1 0300 CALLNAT 'SPGM02' PERSONNEL-ID #MAKE #MODEL 1 0310 * 0320 WRITE TITLE / '*** PERSONS WITH 20 OR MORE DAYS LEAVE DU 1 0330 / '*** ARE MARKED WITH AN ASTERISK ***' // 0340 DISPLAY '//N A M E' NAME 2 |
Falls kein eindeutiges Objekt angegeben wurde, erscheint der Bildschirm List Statement Execution Statistics.
Der Bildschirm Display Executed Statement Lines entspricht dem Bildschirm Display Statement Lines, aber es werden nur die Statement-Zeilen angezeigt, die ausgeführt worden sind.
Um den Bildschirm Display Executed Statement Lines aufzurufen:
Markieren Sie im Bildschirm List Statement Execution
Statistics den gewünschten Eintrag mit dem Zeilenkommando
DX.
Oder:
Geben Sie folgendes Direktkommando ein:
DISPLAY EXEC library (object)
Siehe auch die Syntax des Direktkommandos DISPLAY in Debug-Kommandoübersicht und
-syntax.
Falls kein eindeutiges Objekt angegeben wurde, erscheint der Bildschirm List Statement Execution Statistics.
Der Bildschirm Non-Executed Statement Lines entspricht dem Bildschirm Display Statement Lines, aber es werden nur die Statement-Zeilen angezeigt, die nicht ausgeführt worden sind.
Um den Bildschirm Display Non-Executed Statement Lines aufzurufen:
Markieren Sie im Bildschirm List Statement Execution
Statistics den gewünschten Eintrag mit dem Zeilenkommando
DN.
Oder:
Geben Sie folgendes Direktkommando ein:
DISPLAY NOEXEC library (object)
Siehe auch die Syntax des Direktkommandos DISPLAY in Debug-Kommandoübersicht und
-syntax.
Falls kein eindeutiges Objekt angegeben wurde, erscheint der Bildschirm List Statement Execution Statistics.
Mit den Druckfunktionen können Sie eine generierte Liste der
Statement-Ausführungsstatistiken direkt an einen Drucker weiterleiten oder die Liste auf
einen PC herunterladen. Sie geben einen Drucker als Ausgabegerät im Bildschirm
User Profile (Benutzerprofil) des Debuggers an. Benutzen Sie das
Debugger-Kommando PROFILE (siehe Abschnitt Kommandos zum
Navigieren und Anzeigen von Informationen), um diesen Bildschirm
aufzurufen.
Wenn Sie keinen Library-Namen angeben, wird standardmäßig die Library angenommen, bei der Sie gerade angemeldet sind.
Wie unter Druckoptionen weiter unten angegeben, können Sie zum Aufrufen einer der Druckfunktionen entweder einen Funktionscode im Menü Statement Execution Statistics Maintenance, ein Zeilenkommando im Bildschirm Display Statement Lines oder ein Direktkommando eingeben.
| Druckfunktion | Funktionscode | Zeilenkommando | Direktkommando |
|---|---|---|---|
| Statement-Ausführungsstatistik drucken | PRINT XSTATISTICS library
(object)
|
||
| Alle Statements drucken | PS |
PRINT STATEMENT library
(object)
|
|
| Ausgeführte Statements drucken | PX |
PRINT EXEC library
(object)
|
|
| Nicht ausgeführte Statements drucken | PN |
PRINT NOEXEC library
(object)
|
Siehe auch die Syntax des Direktkommandos PRINT im Abschnitt Debug-Kommandoübersicht und
-syntax.
Beispiel für einen PC Download in Objekte drucken im Abschnitt Call Statistics Maintenance (Statistiken über gerufene Objekte)
Beispiel für das Erstellen und Drucken von Statistiken im Batch-Modus im Abschnitt Batch-Verarbeitung