Befehl "probevue"

Zweck

Startet eine dynamische Tracesitzung. Der Befehl kann die Headerdatei vorverarbeiten und sich beenden, ohne die dynamische Tracesitzung zu starten.

Syntax

probevue [ -c " { Zeitmarke = { 0 | 1| 2} Thread = { on | off } tid = { t1, ...} pid = { p1, ...} abs_mem_for_dvars=memory_in_KB num_threads_traced=number_of_thread_to_trace} "] [-d] [ -i Async_Fetch_Interval ] [ -e Pinned_memory_dvar_percent ] [-f to_print_time_profile_data_milli_or_micro ] [ -I Include_file1, ... ] [ -K ] [ -o Ausgabedatei ] [-q info = {none|normal|detail}] [ -s Puffergröße ] [ -t Intervall ] [ -T ] [-u] [ -X Programmname [ -A "Arguments_zu_Programm"] [-L "Lib-Pfad"] [-g] ] [ Scriptname [ Arguments_zu_Script ]]

Probevue [ -P C + + _Headerdatei ]

probevue [ -l "{ syscall | syscallx | syscallx32 | syscallx64 | Intervall | systrace | sysproc | io | net}"]

Beschreibung

Der Befehl probevue analysiert das Betriebssystem und die Benutzerprogramme, indem er die benutzerdefinierten Testmonitore dynamisch aktiviert, die Aktionen, die den Testmonitoren zugeordnet sind, startet, wenn sie ausgelöst werden, und die erfassten Tracedaten darstellt.

Wenn Sie den Befehl probevue mit einem vue-Script angeben, aktiviert der Befehl das im Script angegebene Tracing und erzeugt die Traceausgabe.

Wenn die Option -P mit der C++-Headerdatei angegeben wird, erzeugt der Befehl die vorverarbeitete verschlüsselte C-Headerdatei. Die verschlüsselte C-Headerdatei kann weiterhin verwendet werden, um eine C++-Anwendung mit der Option -I des Befehls probevue zu testen.

Die Argumente für den Befehl probevue und das vue-Script können in einem Script anstelle der Befehlszeile angegeben werden. Mit diesem Script kann das Script wiederholt mit denselben Argumenten ausgeführt werden. Ein vue-Sprachkonstrukt#VUE_CMD_ARGSkann verwendet werden, um die Argumente für den Befehl Probevue in der Datei und die#VUE_SCRIPT_ARGSDas Sprachkonstrukt kann verwendet werden, um die Argumente für das vue-Script anzugeben.
Hinweise:
  • Wenn die Argumente im Script angegeben werden, müssen alle Argumente für ein vue-Konstrukt in derselben Zeile angegeben werden.
  • Wenn Argumente für den Befehl probevue in der Befehlszeile und im Script angegeben werden, werden nur Befehlszeilenargumente berücksichtigt und alle Befehlsargumente im Script werden ignoriert. Dieser Prozess gilt auch für die Argumente im vue-Script.
  • Der#VUE_CMD_ARGSund#VUE_SCRIPT_ARGSKonstrukte unterstützen keine Standardeingabe.
  • Der dynamische Speicherbedarf des Befehls probevue ist proportional zum Produkt aus CPU-Anzahl und CPU-spezifischer Tracepuffergröße (Wert des optimierbaren Parameters default_buffer_size des Befehls probevctrl). In einem System mit sehr vielen CPUs und einem höheren Wert für den CPU-spezifischen Puffer kann der Befehl probevue daher das mit dem Parameter ulimit festgelegte Speicherlimit überschreiten. Führen Sie in solchen Szenarien den Befehl probevue mit dem Flag -u aus, um dieses Limit zu überschreiten.

Flags

Element Beschreibung
-A "Arguments_zu_Programm" Gibt die Argumente für das Programm an, das Sie mit dem Flag -X angegeben haben. Wenn es mehrere Argumente für die Anwendung gibt, schließen Sie jedes Argument in Anführungszeichen ein.
-G Aktiviert die Gruppierung der Ausgabe jeder Klausel der probevue-Sitzung, d. h., die gesamte Ausgabe einer Klausel wird zusammenhängend angezeigt und nicht durch die Ausgabe einer anderen Klause, die gleichzeitig in einer anderen CPU ausgeführt wird, unterbrochen). Das Flag -g überschreibt eine im VUE-Script enthaltene Anweisung group_output_start() oder group_output_end(). Die Ausgabe jeder Klausel wird vom Klauselanfang bis zum Klauselende gruppiert, unabhängig davon, ob eine Anweisung group_output_start() oder group_output_end() in den Klauseln enthalten ist.
-c Gibt an, wie die Tracedaten formatiert werden müssen. Sie müssen die Argumente für diese Option in Anführungszeichen einschließen und die Argumente durch Leerzeichen voneinander trennen. Die Optionen sind im Folgenden beschrieben:
timestamp={0|1|2}
Steuert die Ausgabe der Zeitmarke, die dem Ereignis im Tracebericht zugeordnet ist. Geben Sie einen der folgenden Werte an:
0
Zeigt den Zeitmarke in Sekunden und Mikrosekunden für jede Nachricht relativ zum Start des Trace an. Die erste Zeile der Traceausgabe enthält die Basiszeit, anhand derer die einzelnen Zeitmarken gemessen werden.
1
Zeigt für jede Nachricht die tatsächliche Zeit an, die zum Erstellen der Nachricht benötigt wurde.
2
Zeigt für jede Nachricht die tatsächliche Zeit, die zum Erstellen der Nachricht benötigt wurde, im %A-Format von printf an.
Anmerkung: Wenn beide Optionen gewünscht werden, muss 0,1 eingegeben werden. Das heißt, es dürfen keine Leerzeichen zwischen 0,1 vorhanden sein.
thread={on|off}
Zeigt die ID des Threads, der die Nachricht generiert hat, mit jeder Nachricht an. Der Standardwert ist off.
pid = {p1, ..}
Zeigt nur die Nachrichten an, die von den angegebenen Prozessen generiert wurden.
Anmerkung: Wenn der Thread beendet wurde, bevor der Tracekonsument versucht, den Prozess zu kennen, zu dem der Thread gehört, oder wenn der angegebene Prozess nicht mehr vorhanden ist, kann der Konsument die Nachrichten, die von den Threads in diesem Prozess generiert wurden, nicht anzeigen, wenn Sie die Nachrichten nach Prozess-ID filtern.
Tid = {t1, ..}
Zeigt nur die Nachrichten an, die von den angegebenen Threads generiert wurden.
abs_mem_for_dvars=Speicher_in_KB
Gibt den fixierten Speicher in Kilobyte (KB) an, der dynamischen Typvariablen zugewiesen ist. Diese Option und die Option -e schließen sich gegenseitig aus.
num_threads_traced=Anzahl_der_zu_verfolgenden_Threads
Gibt die maximale Anzahl von Threads an, die die aktuelle ProbeVue-Sitzung unterstützen kann, wenn die Sitzung lokale Variablen für die Threads enthält. Dieser Wert überschreibt den entsprechenden Wert des globalen optimierbaren ProbeVue-Parameters.
-d Zeigt die Liste der für die Sitzung aktivierten Testmonitore an.
-e Pinned_memory_dvar_percent Gibt den Prozentsatz des Speichers für dynamische Datenstrukturen an, der für dynamische Typvariablen reserviert ist. Als Prozentsatz kann minimal 10 und maximal 100 angegeben werden.
-F Gibt das Format an, in dem die von der Testmonitoraktion benötigte Zeit angezeigt werden muss. Die unterstützten Formate sind im Folgenden beschrieben:
milli
Zeigt die Zeit in Millisekunden an.
micro
Zeigt die Zeit in Mikrosekunden an.
Das Standardformat ist milli.
-i asynchrones_Abrufintervall Gibt an, wie oft die asynchronen Statistiken für den Befehl probevue abgerufen werden. Diese Option überschreibt das globale Intervall für den Befehl probevue. Das Mindestintervall sind 100 Millisekunden.
-I Include_file1 Verwendet die als nachverarbeitete Headerdatei angegebene Datei, d. h. eine Datei ohne C-Vorprozessoroperatoren. Die Datei kann in der Befehlszeile angegeben werden, damit sie bei der Kompilierung des vue-Scripts einbezogen werden.
-K Aktiviert RAS-ereignisbezogene Funktionen in einer probeVue-Sitzung.
-l Listet alle vom Testmonitormanager unterstützten Testmonitorpunkte auf. Wenn Sie das Flag -l mit dem Befehl probevue angeben, dürfen keine anderen Flags verwendet werden. Mit dem Flag -l können Sie mehrere Testmonitormanager angeben, z. B. -l syscall -l syscallx -l interval.

Der Testmonitormanager unterstützt die Testmonitore interval, syscall, syscallx, systrace, io, sysproc und net für das Flag -l. Wenn Sie falsche Argumente oder einen falschen Testmonitormanager mit der Option -l angeben, wird ein Verwendungsfehler angezeigt.

  • probevue -l syscall: Listet alle möglichen Systemaufrufe auf, die auf dem System verfolgt werden können.
  • probevue -l syscallx: Zeigt alle Basissystemaufrufe an, die auf dem System verfolgt werden können. Diese Option listet den Systemaufruf für die 32- und 64-Bit-Systeme gesondert auf.
  • probevue -l syscallx32: Zeigt die 32-Bit-Basissystemaufrufe an, die auf dem System verfolgt werden können.
  • probevue -l syscallx64: Zeigt die 64-Bit-Basissystemaufrufe an, die auf dem System verfolgt werden können.
  • probevue -l interval: Gibt die minimale und maximale Intervalldauer an, die für reguläre Benutzer und Rootbenutzer mit dem Testmonitor interval unterstützt werden.
  • probevue -l systrace: Zeigt eine Beschreibung für den Testmonitor systrace an.
    Anmerkung: Für den Testmonitormanager syscallx werden bei Verwendung des Testmonitors -l syscallx sowohl 32 -Bit-als auch 64-Bit-Basissystemaufrufe angezeigt. Wenn Sie nur die 32-Bit-Anrufe anzeigen möchten, verwenden Sie den Testmonitor syscallx32, und wenn Sie nur 64-Bit-Aufrufe anzeigen möchten, verwenden Sie den Testmonitor syscallx64.
-L "Bibiothekspfad"

Priorisiert die Bibliothekssuche im angegebenen Pfad. Wenn die Bibliotheken nicht im angegebenen Pfad gefunden werden, wird nach Bibliotheken im Standardbibliothekspfad gesucht, der im Header des Abschnitts loader in der XCOFF-Datei (eXtended COFF) angegeben ist.

Das Flag -L gilt für uft- (User Function Tracing, Tracing von Benutzerfunktionen) und C++-Testmonitormanager, die den Namen der ausführbaren Datei verwenden. Das Flag -L wird für andere Testmonitormanager ignoriert.

-o Ausgabedatei Schreibt den Bericht in eine Datei und nicht in die Standardausgabe.
-P C++ Headerdatei Führt eine Vorverarbeitung der C++-Headerdatei durch und erstellt eine vorverarbeitete Ausgabedatei für jede C++-Eingabeheaderdatei. Die vorverarbeitete Ausgabedatei hat den gleichen Namen wie die C++-Eingabeheaderdatei, aber das Suffix .Vue.
Anmerkung: Sie können keine anderen Flags mit der Option -P verwenden. Das Flag -P akzeptiert jeden Dateinamen mit Ausnahme von Dateinamen mit dem Suffix .Vue.
-q info=Ebene Gibt die Berichtsebene von Informationsnachrichten beim Parsen des vue-Scripts an. Die gültigen Werte sind im Folgenden beschrieben:
keine
Es werden keine Informationsnachrichten angezeigt.
normal
Es werden nur wichtige Informationsnachrichten angezeigt.
detail
Es werden alle Informationsnachrichten angezeigt, die zu einer fehlerhaften Ausführung führen können.
-s Puffergröße Gibt die Größe der Tracepuffer pro CPU in KB an. Die Größe wird auf die nächste 4-KB-Seite gerundet. Sie können folgende Ebenen verwenden:
-t Intervall Gibt an, wie oft die Tracepuffer gelesen werden. Das Mindestintervall, das Sie angeben können, ist 10 Millisekunden. Das vom regulären Benutzer (d. h. von einem Benutzer ohne die Berechtigung aix.ras.probevue.trace) angegebene Zeitintervall wird auf das nächsthöhere Vielfache von 10 Millisekunden aufgerundet. Die Leserate wird aus der probeVue-Konfiguration abgerufen.
Anmerkung: Ein regulärer Benutzer kann die Mindestleserate angeben und der Befehl Probevctrl kann die Standardleserate ändern.
-T Startet die Profilerstellung für Testmonitoraktionen zu Beginn der Sitzung. Das Flag -T stellt sicher, dass zu Beginn der Sitzung ein Profil für die Testmonitoraktionen angelegt wird.
-u Startet die probeVue-Sitzung und setzt das Datensegment auf den Wert "unlimited". Das Flag -u wird verwendet, um Stack-Traces großer Binärdateien mehrerer Prozesse auszugeben.
-X Programmname Startet ein Programm und aktiviert Testmonitore vor dem Start des Programms. Sie können die Sonderumgebungsvariablen $__CPID und $__CTID in einem vue-Script verwenden, um die Prozess-ID und die Thread-ID der Anwendung zu ermitteln, die gestartet wird.

Sicherheit

Achtung RBAC-Benutzer und vertrauenswürdige AIX®: Dieser Befehl kann privilegierte Operationen durchführen. Privilegierte Operationen können nur von privilegierten Benutzern ausgeführt werden. Weitere Informationen zu Berechtigungen und Autorisierungen finden Sie im Abschnitt "Privileged Command Database" in der Veröffentlichung Security. Eine Liste der Privilegien und Berechtigungen für diesen Befehl finden Sie in den Beschreibungen des Befehls lssecattr und des Unterbefehls getcmdattr.

Beispiele

  1. Geben Sie Folgendes ein, um eine probeVue-Sitzung mit dem Script syscall.e zu starten:
    probevue syscall.e
  2. Geben Sie Folgendes ein, um den Tracebericht an die Datei /tmp/trace_report zu senden:
    probevue -o /tmp/trace_report syscall.e
  3. Geben Sie Folgendes ein, um den Tracebericht der Thread-IDs 12345,4567 und die Zeitmarke relativ zum Beginn des Trace anzuzeigen:
    probevue -c "timestamp=0 tid=12345,4567" syscall.e
  4. Geben Sie Folgendes ein, um die Headerdatei stat.i einzuschließen und 4 KB pro CPU-Puffer zuzuordnen:
    probevue -I stat.i -s 4 syscall.e
  5. Geben Sie Folgendes ein, um die C++-Headerdatei myheader.h vorzuverarbeiten:
      probevue -P myheader.h
    Der Befehl probevue generiert die Datei myheader.Vue, bei der es sich um eine verschlüsselte C++-Headerdatei handelt, die mit der Option -I in die Tracesitzung eingeschlossen wird.
  6. Geben Sie Folgendes ein, um den Prozentsatz des fixierten (pinned) Speichers für die dynamischen Datenstrukturen (Stack-Trace und assoziatives Array) für die aktuelle Sitzung vom Standardwert 50 auf 75 für das Script ASO.e zu erhöhen:
    probevue -e 75  ASO.e
  7. Das folgende Script ist ein Beispiel für die Bereitstellung der Argumente im Script:
    !#/usr/bin/probevue
    	#VUE_CMD_ARGS=-o /tmp/trace_out
    	#VUE_SCRIPT_ARGS=read
    	
    	@@syscall:*:$1:entry 
    	{
    		printf("%t\n", get_stktrace(4));
    	}
    
    Das Script wird als ./script.e ausgeführt.

Dateien

Element Beschreibung
/usr/bin/probevue Enthält den Befehl probevue.