Befehl "kdb"

Zweck

Ermöglicht die Untersuchung eines System- oder Livespeicherauszugs oder eines aktiven Kernels.

Syntax

kdb -h 
kdb [ -c CommandFile ] [ -cp ] [ -i HeaderFile ] [ -l ] [ -script ] -w -u  KernelFile
kdb [ -c CommandFile ] [ -cp ] [ -i HeaderFile ] [ -l ] [ -script ] [ -v ] [  SystemImageFile [  KernelFile [KernelModule ... ]]]
kdb [ -c CommandFile ] [ -cp ] [ -i HeaderFile ] [ -l ] [ -script ] [ -v ] [ -m  SystemImageFile ] [ -u  KernelFile ] [ -k KernelModule ]

Beschreibung

Der Befehl kdb ist ein interaktives Dienstprogramm zum Überprüfen eines Betriebssystemimage oder eines aktiven Kernels. Der Befehl kdb interpretiert und formatiert Steuerstrukturen im System und stellt verschiedene Funktionen für die Untersuchung eines Speicherauszugs bereit.

Zur Verwendung des Befehls kdb auf dem aktiven System benötigen Sie Rootberechtigungen, weil die Gerätedatei /dev/pmem verwendet wird. Geben Sie Folgendes ein, um den Befehl kdb auf dem aktiven System auszuführen:
kdb
Anmerkung: Das Stack-Tracing des aktuellen Prozesses auf einem aktiven System funktioniert nicht.
Geben Sie Folgendes ein, um den Befehl kdb für eine Systemimagedatei aufzurufen:
kdb SystemImageFile

Wenn der Befehl "kdb" gestartet wird, sucht er im Ausgangsverzeichnis udn im aktuellen Arbeitsverzeichnis des Benutzers nach einer Datei .kdbinit. Wenn eine " .kdbinit -Datei an einem dieser Orte existiert, führt der " kdb -Befehl alle Befehle in der Datei aus, als ob sie an der interaktiven kdb-Eingabeaufforderung eingegeben worden wären. Wenn eine Datei .kdbinit an beiden Positionen vorhanden ist, wird zuerst die Datei im Ausgangsverzeichnis und anschließend die Datei im aktuellen Arbeitsverzeichnis verarbeitet (sofern das aktuelle Verzeichnis nicht das Ausgangsverzeichnis ist. In diesem Fall wird die Datei nur einmal verarbeitet.)

Flags

Tabelle 1 Markierungen
Element Beschreibung
-c CommandFile Gibt einen anderen Namen für die Startscriptdatei an. Wenn diese Option verwendet wird, sucht kdb nach dem Parameter CommandFile in den Verzeichnissen home und current anstelle der Datei ' .kdbinit.
-cp Bewirkt, dass kdb jeden Befehl in den Startscriptdateien ausgibt, wenn der Befehl ausgeführt wird. Dies kann zur Fehlersuche in den ' .kdbinit -Dateien oder in jeder anderen Datei, die mit dem ' -c -Flag angegeben wurde, verwendet werden. Jeder Befehl wird mit einem Pluszeichen (+) davor ausgegeben.
-h Zeigt eine kurze Hilfenachricht zur Verwendung des Befehls in der Befehlszeile und eine kurze Auflistung der verfügbaren Befehlszeilenoptionen an.
-i HeaderFile Macht alle im Parameter HeaderFile definierten C-Strukturen für die Verwendung mit dem Unterbefehl kdb ' print verfügbar. Für diese Option muss ein C-Compiler auf dem System installiert sein. Wenn die HeaderFile zusätzliche ' .h -Dateien zum Kompilieren benötigt, müssen diese möglicherweise auch mit separaten ' -i angegeben werden.
-k Modul Weist den Befehl ' kdb an, den angegebenen Modul-Parameter als zusätzliches Kernel-Modul zu verwenden, um Symboldefinitionen aufzulösen, die nicht im Kernel selbst zu finden sind. Die Verwendung dieser Option ist gleichbedeutend mit der Angabe des Kernelmoduls mit dem Parameter KernelModule.
-l Deaktiviert den Inline-Pager (d.h. die Eingabeaufforderung ' more (^C to quit) ? ) in kdb. In diesem Fall hat der Unterbefehl ' set scroll in kdb keine Wirkung, und der Inline-Pager ist unabhängig von der Einstellung des Bildlaufs immer deaktiviert.
-m Bild Weist den Befehl ' kdb an, den angegebenen Image-Parameter als System-Image-Datei zu verwenden. Die Verwendung dieser Option ist gleichbedeutend mit der Angabe der Systemabbilddatei mit dem Parameter SystemImageFile.
-script Deaktiviert den Inline-Pager (d.h. die ' more (^C to quit) ? ) und schaltet den Ausdruck der meisten Statusinformationen beim Start von kdb aus. Diese Option erleichtert das Parsen der Ausgabe des Befehls ' kdb durch Skripte und andere Programme, die als Frontend für kdb dienen.
-u Kernel Weist den Befehl ' kdb an, den angegebenen Kernel als Kernel-Datei für die Auflösung von Symboldefinitionen zu verwenden. Die Verwendung dieser Option ist gleichbedeutend mit der Angabe des Kernels mit dem Parameter KernelFile.
-v Zeigt eine Liste aller Komponentenspeicherauszugstabellen (CDT, Component Dump Tabele9 in der Speicherauszugsdatei an, wenn der Befehl kdb gestartet wird. In CDTs listen die Speicherbereiche auf, die tatsächlich im Speicherauszug enthalten sind. Wenn der Befehl kdb auf einem Livesystem verwendet wird, wird diese Option ignoriert.
-w Untersucht eine Kerneldatei direkt anstelle eines Systemimage. Alle ' kdb, die normalerweise Speicherplätze aus der Systemabbilddatei anzeigen, lesen stattdessen Daten direkt aus KernelFile. Unterbefehle, die in den Speicher schreiben, sind nicht verfügbar.

Parameter

Tabelle 2. Parameter
Element Beschreibung
KernelFile Gibt den AIX an, den der Befehl ' kdb verwendet, um Kernel-Symboldefinitionen aufzulösen. Es mus seine Kerneldatei verfügbar sein. Wenn Sie einen Speicherauszug untersuchen, muss die Kerneldatei mit dem Kernel übereinstimmen, mit dem der System- oder Livespeicherauszug erstellt wurde. Der Standardwert ist /unix.
KernelModule Gibt die Dateinamen aller zusätzlichen Kernelmodule an, die kdb verwendet, um Symboldefinitionen aufzulösen, die nicht in der Kerneldatei selbst enthalten sind.
SystemImageFile Gibt die Datei an, die das Systemimage enthält. Der Wert kann einen System- oder Livespeicherauszug, den Namen einer Speicherauszugseinheit oder die Gerätedatei /dev/pmem angeben. Der Standardwert ist /dev/pmem.

Beispiele

Die folgenden Beispiele veranschaulichen Aufrufoptionen für den Befehl kdb:

  1. Geben Sie Folgendes ein, um den Befehl kdb mit dem Standardsystemimage und den Kernel-Image-Dateien aufzurufen:
    kdb

    Das Programm ' kdb gibt einen (0)> Prompt zurück und wartet auf die Eingabe eines Unterbefehls.

  2. Um den Befehl ' kdb mit einer Dump-Datei namens ' /var/adm/ras/vmcore.0 und der UNIX-Kernel-Datei namens ' /unix aufzurufen, geben Sie Folgendes ein:
    kdb /var/adm/ras/vmcore.0 /unix

    Das Programm ' kdb gibt einen (0)> Prompt zurück und wartet auf die Eingabe eines Unterbefehls.

  3. Geben Sie Folgendes ein, um den Befehl kdb mit der Livespeicherauszugsdatei /var/adm/ras/livedump/trc1.nocomp.200705222009.00 und der Kerneldatei /unix aufzurufen:
    kdb /var/adm/ras/livedump/trc1.nocomp.200705222009.00
    Hinweis: Die Standard-Kerneldatei ist " /unix. Anders als bei einem Systemspeicherauszug sind in einem Livespeicherauszug nur ausgewählte Daten vorhanden. Beispielsweise sind nur die Kernel-Thread-Daten für Threads verfügbar, die explizit in den Speicherauszug eingeschlossen werden.

Dateien

Tabelle 3. Dateien
Element Beschreibung
/usr/sbin/kdb Enthält den Befehl " kdb.
/dev/pmem Die Standardsystemimagedatei.
/unix Die Standardkerneldatei.