Anweisungen zur Verwendung des Tools idbx für das Debugging eines
Programms über die Befehlszeile.
Informationen zu diesem Vorgang
Der Benutzer kann das Tool idbx ausführen, indem er den Befehl "idbx"
bei der Eingabeaufforderung ausführt. Auf diese Weise kann der Benutzer ein Debug
eines Programms ohne Verwendung einer UI-Workbench
ausführen.
- Befehlsliste
- assign <Variable> = <Ausdruck>
- Den Wert des Ausdrucks der Variable zuordnen.
- clear <Zeilennummer>
- Alle Unterbrechungspunkte und Traces in der angegebenen Zeile entfernen.
Anmerkung: Siehe
auch delete.
- cont <Signalnummer>
- cont <Signalname>
- Ausführung an dem Punkt fortsetzen, an dem sie gestoppt wurde. Wird ein Signal
angegeben, wird der Prozess so fortgesetzt, als ob er das Signal empfangen hätte. Andernfalls
wird der Prozess so fortgesetzt, als ob er nicht gestoppt worden wäre.
- delete <Statusnummer>
- delete all
- delete tskip [ für t<Threadnummer> ]
- Die Traces oder Stopps, die den angegebenen Nummern entsprechen, oder die
verbleibende tskip-Anzahl für den angegebenen Thread werden bzw. wird entfernt. Die
den Traces und Stopps zugeordneten Nummern und die verbleibende tskip-Anzahl für den
Thread können mit dem Befehl "status" ausgegeben werden.
- disable <Statusnummer>
- disable
- Die Traces oder Stopps, die den angegebenen Nummern entsprechen, werden
inaktiviert.
Die den Traces und Stopps zugeordneten Nummern können mit dem Befehl "status"
ausgegeben werden.
- down
- down <Anzahl>
- up
- up <Anzahl>
- Die aktuelle Funktion, die zum Auflösen von Namen verwendet wird, um
<Anzahl> Ebenen im Stack nach oben oder unten verschieben. Der Standardwert
für <Anzahl> ist eins.
- enable <Statusnummer>
- enable all
- Die Traces oder Stopps, die den angegebenen Nummern entsprechen, werden
aktiviert.
Die den Traces und Stopps zugeordneten Nummern können mit dem Befehl "status"
ausgegeben werden.
- goto <Zeilennummer>
- goto "<Dateiname>" : <Zeilennummer>
- gotoi <Adresse>
- Den Programmbefehlszähler auf <Adresse> oder auf eine Adresse bei
<Zeilennummer> setzen.
Die Variable unsafegoto muss definiert sein, wenn ein goto außerhalb der aktuellen
Funktion gewünscht wird.
- help
- help [> <Dateiname> ]
- help <Befehl> [> <Dateiname> ]
- help <Thema> [> <Dateiname> ]
- Informationen zu dem Befehl oder Thema ausgeben. (Die Zeichenfolge zur
Beschreibung eines Themas kann abgekürzt werden.) Lange Nachrichten können mit dem
"pg"-Standardaliasnamen seitenweise angezeigt werden. Beispiel: "pg" (help
set_variables).
Anmerkung: "pg" wird zurzeit nicht unterstützt.
Anmerkung: Die
Umleitung in eine Datei wird zurzeit nicht unterstützt.
- list [ <Quellenzeilennummer> [, <Quellenzeilennummer> ]]
- list <Prozedur>
- Die Zeilen in der aktuellen Quellendatei von der ersten Zeilennummer bis zur
zweiten Zeilennummer einschließlich auflisten. Werden keine Zeilen angegeben, werden
die nächsten 10 Zeilen aufgelistet. Wird der Name einer Prozedur oder Funktion
angegeben, werden die Zeilen n-k bis n+k aufgelistet, wobei n die erste Anweisung in
der Prozedur oder Funktion ist und k durch listwindow definiert wird.
- listi
- listi [ <Adresse> [ , <Adresse> ]]
- listi at <Quellenzeilennummer>
- listi <Prozedur>
- Die Instruktionen ab der aktuellen Position des Programmbefehlszählers oder der
angegebenen Adresse, Zeilennummer oder Prozedur auflisten. Die Anzahl der
ausgegebenen Instruktionen wird von der internen dbx-Variablen listwindow
gesteuert.
- move <Quellenzeilennummer>
- Die nächste Zeile, die vom list-Befehl angezeigt werden soll, in
Quellenzeilennummer ändern.
- next
- next <Anzahl>
- Code bis zur nächsten Zeile ausführen. Wird eine Anzahl angegeben, werden die
nächsten (Anzahl) Zeilen ausgeführt. Der Unterschied zwischen diesem Befehl
und "step" ist Folgender: Wenn die Zeile einen Aufruf für eine Prozedur oder
Funktion enthält, stoppt der Befehl "step" am Anfang dieses Blocks. Im Gegensatz
dazu stoppt der Befehl "next" nicht.
- nexti
- nexti <Anzahl>
- Ein einzelner Schritt wie mit "next"; ausgeführt wird jedoch eine einzige
Instruktion und keine Quellenzeile. Wird eine Anzahl angegeben, werden die nächsten
(Anzahl) Instruktionen ausgeführt.
- print <Ausdruck> [ , <Ausdruck> ]
- print <Prozedur (<Parameter>)
- Gibt den Wert des angegebenen Ausdrucks aus. Auch die Werte von
Allgemeinregistern und Gleitkommaregistern können mit diesem Befehl ausgegeben
werden.
- "print <Prozedur> (<Parameter>)" führt den Objektcode aus, der der
Prozedur zugeordnet ist, und gibt den Rückgabewert aus.
- Bei der Namensauflösung wird zunächst der statische Bereich der aktuellen
Funktion und dann der dynamische Bereich verwendet, wenn der Name nicht im
statischen Bereich definiert ist. Ist weder die statische noch die dynamische
Suche erfolgreich, wird ein beliebiges Symbol ausgewählt und eine Nachricht
wie "[<qualifizierter Name> wird verwendet]" wird ausgegeben. Die Prozedur zur
Namensauflösung kann außer Kraft gesetzt werden, indem eine Kennung durch einen
Blocknamen qualifiziert wird, z. B. "Modul.Variable". Für C werden Quellendateien
als Module behandelt, deren Name der Dateiname ohne ".c" ist.
- prompt
- prompt "Zeichenfolge"
- Zeigt die dbx-Eingabeaufforderung an oder ändert diese in "Zeichenfolge".
- quit
- dbx verlassen (Programm wird beendet).
- registers
- Den Inhalt aller Allgemeinregister, Systemsteuerungsregister, Gleitkommaregister
und des aktuellen Instruktionsregisters ausgeben.
Verwenden Sie zum Anzeigen von Gleitkommaregistern den dbx-Unterbefehl "unset
noflregs".
- Es ist möglich, Register einzeln anzuzeigen oder ihnen einzeln Werte zuzuordnen,
indem die folgenden vordefinierten Registernamen verwendet werden: r0 bis $r31 für
die Allgemeinregister; fr0 bis $fr31 für die Gleitkommaregister; sp, iar, cr, link
für den Stackzeiger, den Programmbefehlszähler, das Bedingungsregister bzw. das
Verbindungsregister.
- run [<Argumente>] [< <Dateiname> ] [> <Dateiname> ]
- [>> <Dateiname> ] [>! <Dateiname> ]
- [2> <Dateiname> ] [2>> <Dateiname> ]
- [>& <Dateiname> ] ]>>& <Dateiname> ]
- rerun [<Argumente>] [< <Dateiname> ] [> <Dateiname>
]
- [>> <Dateiname> ] [>! <Dateiname> ]
- [2> <Dateiname> ] [2>> <Dateiname> ]
- [>& <Dateiname> ] ]>>& <Dateiname> ]
- Mit der Ausführung der Objektdatei beginnen und dabei Argumente als
Befehlszeilenargumente übergeben; mit < oder > kann die Ein- oder
Ausgabe wie bei einer Shell umgeleitet werden. Wird "rerun" ohne Argumente
angegeben, wird die vorherige Argumentliste an das Programm übergeben; ansonsten ist
der Befehl mit run identisch.
Anmerkung: Argumente für die Befehle run und
rerun werden zurzeit nicht unterstützt.
- return
- return <Prozedur>
- Verarbeitung fortsetzen, bis eine Rückkehr zu <Prozedur> ausgeführt wird
oder bis die aktuelle Prozedur zurückkehrt, wenn keine Prozedur angegeben ist.
- set <Name>
- set <Name> = <Ausdruck>
- Der Befehl set definiert Werte für dbx-Variablen. Die Namen dieser Variablen
dürfen keine Konflikte mit den Namen in dem Programm verursachen, für das das Debug
erfolgt, und sie werden innerhalb anderer Befehle auf die entsprechenden Ausdrücke
erweitert.
Verwenden Sie "unset", um eine festgelegte Variablendefinition zu entfernen. Wenn
Sie "help set_variables" eingeben, werden Definitionen zu vordefinierten
Variablen angezeigt.
- skip [<Anz.>]
- Wiederaufnehmen und den nächsten Unterbrechungspunkt ignorieren. Ist "Anz."
angegeben, die nächsten "Anz." Unterbrechungspunkte ignorieren.
- status [> <Dateiname> ]
- status more [> <Dateiname> ]
- Die zurzeit aktiven Trace- und Stoppbefehle mit den zugehörigen
dbx-Unterbefehlen sowie die verbleibende tskip-Anzahl für den Thread anzeigen.
- step
- step <Anzahl>
- Eine einzige Zeile ausführen. Wird eine Anzahl angegeben, werden die nächsten
(Anzahl) Zeilen ausgeführt. Der Unterschied zwischen diesem Befehl und "next" ist
Folgender: Wenn die Zeile einen Aufruf für eine Prozedur oder Funktion enthält, ruft
der Befehl "step" diese Prozedur oder Funktion auf. Dies ist bei dem Befehl
"next" nicht der Fall.
Anmerkung: Siehe auch:
set_variables stepignore.
- stepi
- stepi <Anzahl>
- Eine einzige Instruktion ausführen. Wird eine Anzahl angegeben, werden die
nächsten (Anzahl) Instruktionen ausgeführt.
- !stop if <Bedingung>
- stop at <Zeilennummer> ![if <Bedingung>]
- stop in <Prozedur> ![if <Bedingung>]
- !stop <Variable> [if <Bedingung>]
- !stop <Variable> at <Zeilennummer> [if <Bedingung>]
- !stop <Variable> in <Prozedur> [if <Bedingung>]
- !stop on load ["<Modul>"] [if <Bedingung>]
- !stop on load ["<Modul>(<Member>)"] [if <Bedingung>]
- Ausführung stoppen, wenn die angegebene Zeile erreicht, die angegebene Prozedur
oder Funktion aufgerufen, die angegebene Variable geändert, das angegebene
Modul geladen oder entladen wird oder die angegebene Bedingung wahr ist.
Anmerkung: ! wird
zurzeit nicht unterstützt.
- unset <Name>
- Die Definition für <Name> entfernen.
- whatis <Name>
- Die Deklaration des angegebenen Namens ausgeben.
- where [Anfangsframe Endframe] [> <Dateiname>]
- Einen Stack-Trace der aktiven Prozeduren und Funktionen ausgeben, die den
Framenummern Anfangsframe bis Endframe zugeordnet sind. Definieren Sie stack_details
für einen ausführlichen Stack-Trace.
- visual <Hostname> <Portnummer>
- IDBX-Debugger bei dem angegebenen Host und Port des UI-Dämons mit einer
UI-Workbench verbinden.