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.
- 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
probevueist proportional zum Produkt aus CPU-Anzahl und CPU-spezifischer Tracepuffergröße (Wert des optimierbaren Parameters default_buffer_size des Befehlsprobevctrl). In einem System mit sehr vielen CPUs und einem höheren Wert für den CPU-spezifischen Puffer kann der Befehlprobevuedaher das mit dem Parameterulimitfestgelegte Speicherlimit überschreiten. Führen Sie in solchen Szenarien den Befehlprobevuemit 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:
|
| -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:
|
| -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.
|
| -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
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:
|
| -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
- Geben Sie Folgendes ein, um eine probeVue-Sitzung mit dem Script syscall.e zu starten:
probevue syscall.e - Geben Sie Folgendes ein, um den Tracebericht an die Datei /tmp/trace_report zu senden:
probevue -o /tmp/trace_report syscall.e - 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 - 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 - Geben Sie Folgendes ein, um die C++-Headerdatei myheader.h vorzuverarbeiten:
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.probevue -P myheader.h - 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 - Das folgende Script ist ein Beispiel für die Bereitstellung der Argumente im Script:
Das Script wird als!#/usr/bin/probevue #VUE_CMD_ARGS=-o /tmp/trace_out #VUE_SCRIPT_ARGS=read @@syscall:*:$1:entry { printf("%t\n", get_stktrace(4)); }./script.eausgeführt.
Dateien
| Element | Beschreibung |
|---|---|
| /usr/bin/probevue | Enthält den Befehl probevue. |