Verwendungstipps für WDEB386

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 72379 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Der WDEB386-Debugger im Windows Software Development Kit (SDK) bereitgestellt hat viele unschätzbare Hilfe Features; allerdings hat es auch eine Reihe von Mängel. Dieser Artikel beschreibt einige der Dinge, WDEB386 können und nicht und einige Tipps zur Verwendung bietet.

Weitere Informationen

Gründe für das Verwenden von WDEB386

Der WDEB386-Debugger wurde ursprünglich als interne Microsoft Tool zum Entwickeln und Debuggen den erweiterten Modus Layer in Windows geschrieben. Daher behält es eine Reihe von erweiterten Features, die zum Debuggen eine Multitasking im geschützten Modus System erforderlich sind. Zur gleichen Zeit kann die Low-Level Art des debugging-Umgebung unhandlich und in vielen Situationen verwirrend sein. Es gibt allerdings viele Situationen, in denen dieser Debugger besonders oder Diagnose von Problemen wie den folgenden sogar völlig notwendig ist:

  • Ablaufverfolgung über Stücklistenebene, die CVW nicht verfolgt werden
  • Virtuelle/lineare/physische Speicher anzeigen
  • Anzeigen erweiterter 386-Prozessor-Daten, z. B. der GDT registriert, LDT, IDT und alle der PMODE
  • Ablaufverfolgung Hardware Interrupt-Handler
  • Ablaufverfolgung terminate-and-Stay-Resident (TSR) Programme oder MS-DOS-Gerätetreiber
  • Anzeigen des Status virtueller Maschinen (VMs)
  • Überwachen aller Interrupts und Ausnahmen in den erweiterten Modus
  • Entwickeln und Debuggen von virtuelle Geräten (VxDs) für den erweiterten Modus
Dies ist keine vollständige Liste, jedoch sollten Sie dienen einige der Situationen veranschaulichen, in denen der Debugger WDEB386 in der Regel verwendet wird.

Das Aufteilen in den Debugger beim Starten

Eine Befehlszeilenoption, die nicht in Kapitel 9 des Handbuchs "Microsoft Windows Software Development Kit" erwähnt wurde ist die Option/b. Angabe von/b auf der WDEB386-Befehlszeile weist den Debugger Anhalten der Ausführung während des Startens von Windows. Diese Option kann nicht garantieren, dass der Debugger Ausführung bei der ersten Anweisung ausführen angehalten wird. In der Tat der Debugger nicht Ausführung bis anhalten, nachdem Windows VxDs, nur vor, um Initialisierung geladen wurde.

In das Aufteilen in den Debugger

Wenn WDEB386 ausgeführt wird, kann Ausführung von der aktuellen Anweisungsstream mit der Tastenkombination STRG + ALT + nach-ABF angehalten. Dies beendet nicht die Ausführung an der genaue Position des der Tastatur Interrupt; Ausführung wird an einer Position in der Virtual Machine Manager (VMM) angehalten. Der Inhalt Registrieren der unterbrochene virtuelle Computer können mithilfe des Befehls .VM (siehe unten) überprüft werden.

Alternativ können Haltepunkte mit der BP-Befehl oder Interrupt-Anweisungen direkt in den Code zusammengestellt festgelegt werden. Eine Ganzzahl von 1 oder INT 3-Anweisung kann verwendet werden. Der Unterschied ist, dass eine Ganzzahl 1 Fehlermeldung "Unerwarteter Ablaufverfolgung Interrupt erzeugen" und beenden Sie auf die Anweisung nach der Ganzzahl 1 wird. Diese Nachricht nicht Fehlerzustand hin und kann ignoriert werden. Eine INT 3 wird direkt auf die Ganzzahl unterteilen und die Nachricht nicht erzeugt. Sobald eine Anweisung Haltepunkt erreicht wird, kann es dauerhaft mit dem Befehl "Z" entfernt werden. Dieser Befehl ersetzt die Maschinensprache INT mit NOPs (No OPeration).

Wenn die erforderliche Hardware verfügbar ist, kann auch der nichtmaskierbarer Interrupt (NMI) verwendet werden um den Debugger zu unterbrechen. Dies bedeutet normalerweise mit eine externe "STOP" Schaltfläche angeschlossen an eine Debuggen Karte in einen Steckplatz dem Entwicklungscomputer installiert. Einigen Computern möglicherweise die Möglichkeit, eine vordere Abdeckung Schaltfläche mit der NMI Zeile auf den Computer-Bus verbinden. Mit NMI hat in jedem Fall den Vorteil, an einem Computer aufheben, die "mit Interrupts deaktiviert reagiert".

Für Programmierer virtuelle Gerätetreiber (VxDs) entwickeln steht das Debug_Out-Makro kombinieren eine ASCII-Zeichenfolge an die Debug terminal senden und Ausführung ein INT-1, die an den Debugger unterbrochen wird.

Verwenden WDEB386 im Standardmodus

Der WDEB386-Debugger wird hauptsächlich für erweiterten Modus Debuggen bereitgestellt; jedoch, Sie können auch verwendet werden, im normalen Modus auf einem 386-Prozessor. Im Allgemeinen entspricht Betrieb der WDEB386-Debugger im normalen Modus als im erweiterten Modus, außer dass eine Reihe von Features insbesondere in Windows 3.0 nicht verfügbar sind.

Z. B. die "/ b" Option unterbrechen beim Start ist nur im erweiterten Modus auf Windows 3.0 verfügbar. Steht in den Standardmodus für Windows 3.1. Viele der Befehle "Dot" (Befehle mit dem Präfix eines Zeitraums) werden für den erweiterten Modus bereitgestellt und sind nicht im normalen Modus verfügbar.

Ermitteln des Status des Prozessors

Sobald Steuerelement an den Debugger erteilt wurden, bietet das Eingabeaufforderungszeichen verwendet im geschützten Modus Status des Prozessors. Die folgende Liste zeigt welcher Eingabeaufforderungszeichen angezeigt werden können und die Bedeutung der einzelnen:
    Character  Meaning
    ---------  -------

       >       The processor is in real mode
       #       The processor is in protected mode
       -       The processor is in virtual 8086 mode
				
werden der Modus der Prozessor in ist ein guter Hinweis darauf von welcher Code ausgeführt wird. Wenn die Eingabeaufforderung wird z. B. ein "-" (Bindestrich), der aktuelle Anweisungsstream ist irgendwo in MS-DOS, das BIOS oder möglicherweise ein TSR-Programm oder MS-DOS-Gerätetreiber. Dies ist da die Schicht erweiterten Modus von Windows den Prozessor zum V86 Modus MS-DOS oder BIOS-Funktionen ausgeführt wechseln, um muss. Wenn die Eingabeaufforderung ein "#" (Nummernzeichen) ist, wird protected-Modus-Code--der einer Windows-basierten Anwendung, DLL oder sogar den erweiterten Modus Layer sein konnte--Alternativ ausgeführt.

Einer der wichtigsten Aspekte "wissen, was ausgeführt wird" wird mithilfe von WDEB386 unter Windows im erweiterten Modus einige Bewusstsein für WIN386.EXE. In dieser Unterrichtseinheit besteht aus der VMM (Virtual Machine Manager) und alle VxDs (virtuelle Geräte). Diese Komponenten werden oft zusammen bezeichnet als der "erweiterten Modus Ebene", "ring 0 (null) Code" oder einfach "WIN386". Unter Windows 3.0 und 3.1 und Windows für Workgroups, Versionen 3.0, 3.1 und 3.11, bedeutet Wenn die Debugger-Eingabeaufforderung "#" und der Wert der CS-Register 0028h, der Computer in WIN386 beendet ist.

Beenden in WIN386 oder möglicherweise nicht wünschenswert. Beispielsweise ermöglicht die Fähigkeit des WDEB386, WIN386 beenden VxD Entwicklern Single-Schritt durch in question der VxD. Jedoch eventuell eine Anwendung oder Gerät Treiber Programmierer WDEB386 aufgrund von "protected seine Modus Bewusstsein" verwenden kein Interesse an WIN386 Aktionen. In jeden Fall ist erkennen die Systemkomponente, die aktuelle Ausführung Stream zugeordneten eine wichtige Schritt in WDEB386 effektiv.

Verwenden der Befehle Punkt

Der Teil besonders interessante (und verwirrende) über die Verwendung von WDEB386 betrifft wahrscheinlich die Befehle "Dot", die die Befehle, die mit einem vorangestellten Punkt sind. Eine der Ursachen für die Verwirrung ist, dass, wenn die Debugversion von WIN386.EXE installiert ist, die meisten der Punkt Befehle nicht verfügbar sind. Beispielsweise, wenn folgende Meldung angezeigt wird, während Windows im erweiterten Modus ausgeführt wird
Win386 nicht geladen, Debuggen nicht Version oder reagiert nicht
Es bedeutet höchstwahrscheinlich, dass die Verkaufsversion von WIN386.EXE installiert ist. Weitere Informationen zum Installieren der debugging Version des WIN386 Abfrage auf die Wörter:
Prod(winddk) und wdeb386
Darüber hinaus wird diese Meldung immer angezeigt, wenn WDEB386 verwendet wird, wenn Windows im normalen Modus ist.

Punkt-Dump-Befehle

Vom Konzept her sind die Punkt-Befehle, "extern" Befehle oder Befehle, die Datenstrukturen und Operationen, die spezifisch für die Windows-Umgebung arbeiten. Z. B. der Befehl "D" (Dump) zeigt Speicherbereiche wie von einem Debugger erwartet würde, der Befehl ".DG" stellt jedoch Informationen zu Windows globalen Heap auf viel die gleiche Weise wie die HEAPWALK-Anwendung.

Die meisten .dx Befehle erfordern keine die Debugversion von WIN386.EXE und stehen auch unter normalen Modus. Im restlichen Teil der Befehle in diesem Artikel beschriebenen erfordern die Debugversion von WIN386.EXE und Betrieb im Modus erweitert. Sobald alles ordnungsgemäß installiert ist die ".?" Help Befehl sollte ein online Kurzübersicht der Punkt Befehle bereitstellen.

Eine wichtige Unterscheidung, die vorgenommen werden sollten ist der Unterschied zwischen die Befehle ".DS" und "KB". Der Befehl "K" führt den Windows-Stapel, solange der Debugger in Windows-basierten Anwendung oder dynamic-link Bibliothek (DLL) Code beendet wird. Allerdings Wenn der Debugger über WIN386 Code Ablaufverfolgung, erzeugt der Befehl "K" nicht hilfreiche Ausgabe. Aus diesem Grund wurde der Befehl ".DS" an den Stapel WIN386 bereitgestellt. Dies ist ein weiteres Demonstration die Bedeutung "wissen, was ausgeführt wird," wie zuvor in diesem Artikel erwähnt.

Punkt VM-Befehle

WDEB386 wurde ursprünglich entwickelt, die Schicht erweiterten Modus von Windows zu debuggen; daher möglicherweise Situationen, in denen der Debugger, in der Mitte des WIN386 beendet ist. Z. B. wenn Ausführung mit STRG + ALT + nach-ABF angehalten wird, wird der Computer nicht sofort beendet am die Anweisung, die ausgeführt wurde, aber an einem Haltepunkt im Code WIN386. Folglich enthalten die Fibu-Register nicht normalerweise alles, die von alle verwenden, um einen Treiber oder eine Anwendung debuggen möchten Entwickler sind.

Betriebsstatus des aktuellen virtuellen Computers kann jedoch mithilfe der .vx-Befehle angezeigt werden. ".VM" wird z. B. die Statusflags anzeigen, registrieren Sie Inhalt, aktuelle Anweisung und einen Teil des Stapels für die aktuelle VM. Geben Sie ".VL" erzeugt eine Liste aller die virtuellen Computer im System. Diese Befehle können eine Übersicht über die Anwendung verwendet werden-DLL, MS-DOS oder BIOS Ausführungsstatus, als im Gegensatz in den Zustand der WIN386.

Punkt Speicher Befehle

Die .Mx-Befehle zeigen erweiterte Informationen auf den Zustand des Speichers. Viele der Funktionen Drucken internen WIN386 Informationen in ein leichter lesbares Format. Zwei Befehle, die sofort nützlich sind, sind ".ML" und ".MP". Diese Befehle Konvertieren Adressen von linear in physischen und umgekehrt.

Punkt-Trace-Befehle

Die Befehle ".T" und ".S" bieten für Interrupt Ablaufverfolgungsinformationen beibehalten. Die Ablaufverfolgungseinträge beschreiben, welche Interrupts die VM-Block-Adresse und die Anweisungsadresse unterbrochene aufgetreten sind. Diese Befehle können Probleme (Fehler), die keine sofortige Symptome produzieren Aufspüren äußerst nützlich sein.

Punkt Gerät Befehle

WIN386 und WDEB386 bieten die Möglichkeit für eine einzelne VxD um Informationen über eigene Betriebssystem Zustand anzuzeigen. Im Allgemeinen kann der Benutzer dies anfordern Debuginformationen einen VxD, indem Sie an der Eingabeaufforderung WDEB386, wobei "Name" der Name der VxD ist .Name eingeben. Geben Sie .VDMAD ergibt z. B. Informationen zum Status des virtuellen DMA-Geräts.

Eine Punkt-Gerät Befehls bewirkt, dass VMM, eine Nachricht "Debug_Query" in der VxD zu senden. Der VxD ist nicht erforderlich, um nichts als Antwort auf diese Nachricht, und in der Tat viele VxDs erstellt keine Debuggen Ausgabe. Im Allgemeinen Ausgabe von VxDs auf diese Weise ist nicht dokumentiert und nur als eine Möglichkeit zum Debuggen der fraglichen VxD bereitgestellt wird. VxD-Entwickler möglicherweise nutzen dieser Mechanismus, um wichtige Datenstrukturen anzuzeigen, die den Zustand des virtuellen Geräts definieren möchten.

Punkt Befehl Zusammenfassung

Die Punkt-Befehle sind in Abschnitt 9.6 (Seite 9-48) des Handbuchs "Microsoft Windows Software Development Kit" zusammengefasst. Ein Bildschirm online Kurzübersicht steht mit der ".?" Befehl.

Hinweis: Eine Anzahl der Punkt-Befehle sind im SDK Tools Handbuch nicht dokumentiert. Beispielsweise das Format des Befehls Gerät Punkt wird beschrieben, aber die eigentliche Ausgabe von bestimmten virtuellen Geräten nicht angegeben. Es gibt eine Reihe von Gründen:

  • Die Ausgabe durch die Punkt-Befehle in der Regel wird nicht vom Debugger WDEB386, sondern durch Komponenten von WIN386 erstellt. Diese Komponenten sind überarbeitet und dynamisch als der Debugger aktualisiert wird und daher die Informationen von diesen Komponenten erzeugten wahrscheinlich ändert.
  • Die Ausgabe ist häufig sehr spezifische Informationen über den VxD selbst und nicht normalerweise würde eine typische Situation Debuggen nützlich.

Eigenschaften

Artikel-ID: 72379 - Geändert am: Donnerstag, 22. Juli 2004 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.0
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.1
Keywords: 
kbmt KB72379 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 72379
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com