home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
pascal
/
tpw
/
doc
/
manual.tdw
< prev
next >
Wrap
Text File
|
1991-05-20
|
12KB
|
294 lines
TURBO DEBUGGER FÜR WINDOWS
Diese Datei enthält Informationen über die Hilfsprogramme zu Turbo Debug-
ger für Windows, soweit sie nicht (wie TDWINST) im Handbuch beschrieben
wurden.
Turbo-Debugger-Hilfsprogramme
-----------------------------
Zu Turbo Debugger Paket gehören verschiedene Hilfsprogramme. Eines die-
ser Hilfsprogramme ist TDSTRIP, mit dessen Hilfe Sie die Debug-Informationen
(die Symboltabelle) aus einem Programm entfernen können, ohne das Programm
neu linken zu müssen.
Des weiteren stellen wir einen allgemeinen Objektcode-Disassembler (TDUMP)
vor.
Eine Liste der verfügbaren Kommandozeilenoptionen für die Programme
TDSTRIP.EXE und TDUMP.EXE erhalten Sie durch Eingabe des Programmnamens ohne
weitere Optionen oder Dateinamen. Wenn Sie zum Beispiel die Kommandozeilen-
optionen von TDSTRIP sehen wollen, geben Sie
TDSTRIP
ein. Das Installationsprogramm TDWINST bietet die Option -?, um sich diese
Informationen auf dem Bildschirm anzeigen zu lassen.
TDSTRIP: Entfernen der Symboltabelle
------------------------------------
Mit TDSTRIP kann die mit der Option /v von TLINK erzeugte Symboltabelle aus
einer Programmdatei entfernt werden. Diese Methode ist wesentlich schneller,
als die Datei ohne die Option /v neu zu linken.
Mit diesem Hilfsprogramm können Sie die Symboltabelle auch gesondert abspei-
chern, beispielsweise wenn eine ».EXE«-Datei in eine ».COM«-Datei umgewan-
delt werden soll, die Symboltabelle aber trotzdem erhalten bleiben soll. Die
Symboltabellen werden mit TDSTRIP in Dateien mit der Erweiterung ».TDS«
gespeichert. Turbo Debugger sucht beim Laden eines Programms, das keine Sym-
boltabelle hat, nach einer solchen Datei.
Die Kommandozeile von TDSTRIP
Die allgemeine Form der DOS-Kommandozeile, mit der man das Hilfsprogramm zum
Entfernen von Symboltabellen startet, lautet:
TDSTRIP [-s] Exedatei [Ausgabedatei]
Wird die Option -s nicht angegeben, dann wird die Symboltabelle von der
».EXE«-Datei Exedatei entfernt. Ist Ausgabedatei angegeben, bleibt die
».EXE«-Datei unverändert, und Sie erhalten in Ausgabedatei eine neue Version
ohne Symboltabelle.
Durch Angabe der Option -s wird die Symboltabelle in einer Datei mit dem
Namen von Exedatei, aber mit der Erweiterung ».TDS«, gespeichert. Wenn
zusätzlich Ausgabedatei angegeben ist, wird die Datei in Ausgabedatei
gespeichert.
Wenn Sie die Option -c angeben, wird die Eingabedatei in eine ».COM«-Datei
umgewandelt. Falls Sie -c zusammen mit -s verwenden, können Sie eine ».EXE«-
Datei in eine ».COM«-Datei und eine getrennte ».TDS«-Symboldatei umwandeln.
Damit lassen sich auch ».COM«-Dateien in Turbo Debugger mit allen Debug-
Informationen untersuchen.
Ist Exedatei ohne Dateinamenerweiterung angegeben, wird als Erweiterung
».EXE« angenommen. Soweit die Option -s nicht verwendet wird, gilt dies
ebenfalls für die Ausgabedatei, andernfalls erhält Ausgabedatei die Erweite-
rung ».TDS«.
Es folgen einige Beispiele für TDSTRIP-Kommandozeilen:
TDSTRIP PROG
entfernt die Symboltabelle von PROG.EXE.
TDSTRIP -s PROG.ALT
entfernt die Symboltabelle aus PROG.ALT und speichert sie in PROG.TDS.
TDSTRIP PROG PROG.NEU
läßt PROG.EXE unverändert, erzeugt aber eine neue Kopie mit dem Namen
PROG.NEU. PROG.NEU hat keine Symboltabelle.
TDSTRIP -s PROG SYMS
entfernt die Symboltabelle aus PROG.EXE und speichert sie in SYMS.TDS
Fehlermeldungen von TDSTRIP
Hier finden Sie eine Aufstellung der Fehlermeldungen, die Ihnen bei der
Arbeit mit dem Hilfsprogramm zum Entfernen von Symboltabellen möglicherweise
begegnen.
Can't create file: ___
[Kann Datei ___ nicht erzeugen]
TDSTRIP konnte die Symboldatei oder die ».EXE«-Datei nicht anlegen. Entweder
ist zuwenig Platz auf dem Laufwerk, oder Sie haben einen ungültigen Datei-
namen angegeben.
Can't open file: ___
[Kann Datei ___ nicht öffnen]
TDSTRIP konnte die ».EXE«-Datei nicht finden, aus der die Symboltabelle ent-
fernt werden sollte.
Error reading from input exe file
[Fehler beim Lesen der ».EXE«-Eingabedatei]
Während des Lesens der ».EXE«-Eingabedatei ist ein Fehler aufgetreten. Ver-
mutlich liegt ein Fehler auf der Diskette vor.
Error writing to output file: ___ ;disk may be full
[Fehler beim Schreiben in die Ausgabedatei ___ ; möglicherweise nicht genü-
gend Speicherplatz auf der Diskette]
TDSTRIP konnte die Symboltabelle oder die neue ».EXE«-Datei nicht schreiben.
Das kommt vor, wenn nicht genug Platz auf der Zieldiskette frei ist. Ver-
wenden Sie eine neue Diskette oder löschen Sie einige nicht mehr benötigte
Dateien auf dem Ziellaufwerk.
Input file is not an .exe file
[Eingabedatei ist keine «.EXE»-Datei]
Sie haben eine Eingabedatei angegeben, die keine ».EXE«-Programmdatei ist.
Sie können nur aus ».EXE«-Programmen Symbole entfernen, da ».EXE«-Programme
die einzigen Dateien sind, in denen TLINK eine Symboltabelle erzeugen kann.
Programme in ».COM«-Dateien haben keine Symboltabellen und können daher mit
TDSTRIP nicht verarbeitet werden.
Invalid command line option: ___
[Ungültige Kommandozeilenoption ___ ]
Beim Aufruf von TDSTRIP haben Sie eine unzulässige Kommandozeilenoption
angegeben.
Invalid exe file Format
[Fehlerhaftes Format der «.EXE»-Datei]
Die Eingabedatei scheint eine ».EXE«-Programmdatei zu sein, aber die Datei
ist fehlerhaft. Sie sollten das Programm noch einmal mit TLINK linken.
Not enough memory
[Zuwenig Speicherplatz]
Ihr System hat nicht genug freien Speicherplatz, um TDSTRIP zu laden und die
».EXE«-Datei zu verarbeiten. Das passiert nur unter sehr extremen Bedingun-
gen (denn TDSTRIP braucht nur sehr wenig Speicherplatz). Sie sollten Ihr
System noch einmal neu starten und den Versuch wiederholen. Sie haben vorher
vielleicht ein Programm gestartet, das sich etwas Speicherplatz reserviert
hat, der erst bei einem Neustart wieder freigegeben werden kann.
Program does not have a symbol table
[Programm hat keine Symboltabelle]
Sie haben als Eingabedatei zwar eine gültige ».EXE«-Datei angegeben, diese
hat aber keine Symboltabelle.
Program does not have a valid symbol table
[Programm hat keine gültige Symboltabelle]
Die Symboltabelle am Ende der ».EXE«-Datei ist nicht korrekt. Das kann dann
passieren, wenn Sie TDSTRIP bei einem Programm verwenden wollen, das nicht
von TLINK, sondern von einem anderen Linker erzeugt wurde.
Too many arguments
[Zuviele Argumente]
Sie können in der TDSTRIP-Kommandozeile höchstens zwei Argumente angeben.
Das erste Argument ist der Name der Programmdatei, und das zweite ist der
Name der Ausgabedatei, in der die Symbole der Programmdatei gespeichert
werden.
You must supply an exe file name
[Sie müssen einen Namen für die ».EXE«-Datei angeben]
Sie haben TDSTRIP gestartet, ohne den Namen des ».EXE«-Programms anzugeben,
dessen Symboltabelle Sie entfernen wollen.
TDUMP: Disassembler für Objektdateien
-------------------------------------
TDUMP ist ein Disassembler allgemeinster Art, der dazu dient, die Struktur
jeglicher Datei zu untersuchen.
TDUMP versucht eine Datei so intelligent wie möglich aufzuteilen. Dazu geht
das Programm zunächst von der Dateierweiterung aus. Wenn diese erkannt wird,
werden die Bestandteile dem Dateityp entsprechend dargestellt. TDUMP erkennt
».EXE«-, ».OBJ«- und ».LIB«-Dateien. Bei jeder anderen Datei wird lediglich
ein Hex-Dump ausgegeben.
Mit TDUMP kann man die interne Struktur aller Objektdateien untersuchen.
Damit sehen Sie nicht nur, was in den Dateien ist, sondern lernen auch, wie
diese aufgebaut sind. Außerdem kann man mit TDUMP feststellen, ob eine Datei
fehlerfrei ist, da TDUMP die Erweiterung des Dateinamens benutzt, um die
Dateistruktur zu überprüfen.
Syntax von TDUMP
Die Syntax für den Aufruf von TDUMP lautet:
TDUMP [Optionen] Eingabedatei [Ausgabedatei]
Eingabedatei ist die Datei, deren Struktur als Dump dargestellt werden soll.
Ausgabedatei kann optional als Umleitung der Bildschirmausgabe in eine Datei
angegeben werden (Dafür können ebenso die DOS-Umleitungsbefehle > und >>
verwendet werden). Bei Optionen kann man zusätzlich einige Komman-
dozeilenoptionen für TDUMP angeben. Wir besprechen diese im nächsten
Abschnitt.
Die Kommandozeilenoptionen von TDUMP
Beim Aufruf von TDUMP sind mehrere Kommandozeilenoptionen zulässig. Alle
Optionen werden mit einem Bindestrich (-) oder einem Schrägstrich (/) ein-
geleitet. Die beiden folgenden Beispiele sind identisch:
TDUMP -el -v demo.exe
TDUMP /el /v demo.exe
Die Optionen -a und -a7
TDUMP paßt die Ausgabe automatisch dem angegebenen Dateityp an (ist der
Dateityp unbekannt, wird die Datei hexadezimal ausgegeben). Sie können
jedoch eine ASCII-Darstellung erzwingen, indem Sie die Option -a oder -a7
angeben.
In einer ASCII-Datei werden der Offset und der Inhalt einer Datei mit dar-
stellbaren ASCII-Zeichen wiedergegeben. Ist ein Zeichen nicht darstellbar
(zum Beispiel die Control-Zeichen), wird ein Punkt ausgegeben.
Die Option -a7 funktioniert wie die Option -a. Lediglich die ASCII-Zeichen
mit Werten über 128 werden in die entsprechenden 7-Bit-Äquivalente umge-
wandelt. Diese für einen Datei-Dump nützliche Eigenschaft dient beispiels-
weise zur Darstellung von Dateien, in denen die obere Hälfte der ASCII-Zei-
chen (wie in WordStar-Dateien) als Flags verwendet werden.
Die Optionen -e,-el und -er
Alle drei Optionen zwingen TDUMP, die Datei als ».EXE«-Datei darzustellen.
Bei einer ».EXE«-Datei werden zunächst statistische Informationen über die
Datei ausgegeben. Hinter diesen folgt eine Tabelle aller globalen Symbole.
Abgeschlossen wird die Ausgabe mit einer Tabelle aller Module.
Die Option -el bewirkt dasselbe wie die Option -e. Die Ausgabe der Zeilen-
nummern wird jedoch unterdrückt.
Die Option -er bewirkt ebenfalls dasselbe wie -e. In diesem Fall wird jedoch
die Ausgabe der Relokationstabelle unterdrückt.
Durch Angabe von -elr können Sie die Ausgabe sowohl der Zeilennummern als
auch der Relokationstabelle unterdrücken.
Die Option -h
Die Option -h bewirkt die Ausgabe der Datei im Hexadezimalformat. Das Hexa-
dezimalformat besteht aus einer Spalte mit Offsets, mehreren Spalten mit
Hexadezimalzahlen und den entsprechenden ASCII-Zeichen (nicht druckbare
ASCII-Zeichen werden als Punkte dargestellt).
Wenn die Dateierweiterung der Eingabedatei für TDUMP unbekannt ist, wird die
Datei standardmäßig im Hexadezimalformat ausgegeben, es sei denn, eine wei-
tere Option erzwingt ein anderes Format.
Die Option -l
Mit der Option -l wird die Datei als Bibliotheksdatei (».LIB«) dargestellt.
Eine Bibliothek besteht aus einer Sammlung von Objektdateien. (Sehen Sie
sich dazu den folgenden Abschnitt über Objektdateien an.) Bei der Ausgabe
einer Bibliotheksdatei werden zuerst einige bibliothekspezifische Informa-
tionen ausgegeben. Es folgen die einzelnen Objektdateien, deren Records
anschließend dargestellt werden.
Die Option -o
Die Option -o veranlaßt TDUMP dazu, die Datei als Objektdatei (».OBJ«)
darzustellen. Eine Objektdatei enthält eine Beschreibung der Befehlsdaten-
sätze, die zur Übergabe der Daten und Befehle an den Linker dienen. Das Dar-
stellungsformat zeigt jeden einzelnen Datensatz und die dazugehörigen Daten,
wobei ein Datensatz nach dem anderen dargestellt wird.
Die Option -v
TDUMP fügt zur Verbesserung der Lesbarkeit normalerweise Beschreibungen in
den Dump ein. Durch die Option -v wird die Ausgabe dieser Beschreibungen
unterdrückt. Somit beeinflußt die Option -v alle Dateiformate gleichermaßen.
Wenn Sie die Option -v verwenden, erfolgt die Darstellung der Dateikomponen-
ten so knapp wie möglich. Sie müssen schon ein erfahrener Programmierer
sein, um mit diesem Ausgabeformat etwas anfangen zu können.