Quellcodedebuggen in WinDbg (klassisch)
Quellpfad
Der Quellpfad gibt die Verzeichnisse an, in denen sich die C- und C++-Quelldateien befinden. Weitere Informationen zum Anzeigen von Quellcode im Debugger finden Sie unter Quellpfad.
Hinweis Wenn Sie mit einem Unternehmensnetzwerk verbunden sind, ist die Verwendung eines Quellservers die effizienteste Methode für den Zugriff auf Quelldateien. Sie können einen Quellserver verwenden, indem Sie die srv*-Zeichenfolge in Ihrem Quellpfad verwenden. Weitere Informationen zu Quellservern finden Sie unter Verwenden eines Quellservers.
Führen Sie eine der folgenden Aktionen aus, um den Quellpfad in WinDbg zu steuern:
Wählen Sie im Menü Datei die Option Quelldateipfad aus , oder drücken Sie STRG+P.
Verwenden Sie den Befehl .srcpath (Quellpfad festlegen). Wenn Sie einen Quellserver verwenden, ist .srcfix (Quellserver verwenden) etwas einfacher.
Verwenden Sie den Befehl .lsrcpath (Set Local Source Path). Wenn Sie einen Quellserver verwenden, ist .lsrcfix (Verwenden des lokalen Quellservers) etwas einfacher.
Wenn Sie den Debugger starten, verwenden Sie die Befehlszeilenoption -srcpath oder -lsrcpath . Weitere Informationen finden Sie unter WinDbg Command-Line-Optionen.
Legen Sie vor dem Starten des Debuggers die umgebungsvariable _NT_SOURCE_PATH fest.
Öffnen und Schließen von Quelldateien
Führen Sie eine der folgenden Aktionen aus, um eine Quelldatei direkt zu öffnen oder zu schließen:
Wählen Sie im Menü Datei die Option Quelldatei öffnen aus, oder drücken Sie STRG+O. Sie können auch die Schaltfläche Open source file (
Hinweis Wenn Sie das Menü oder die Symbolleistenschaltfläche verwenden, um eine Quelldatei zu öffnen, wird der Pfad dieser Datei automatisch an den Quellpfad angefügt.
Wählen Sie im Menü Datei die Option Aktuelles Fenster schließen aus.
Wählen Sie in der Ecke des Quellfensters die Schaltfläche Schließen aus.
Wählen Sie im Menü Datei die Option Zuletzt verwendete Dateien aus, um eine der vier Quelldateien zu öffnen, die Sie zuletzt in WinDbg geöffnet haben.
Geben Sie den Befehl .open (Open Source File) ein.
Geben Sie den Befehl lsf (Quelldatei laden oder entladen) ein.
In WinDbg werden im Quellfenster Quelldateien angezeigt, die in den Debugger geladen wurden.
Öffnen des Quellfensters
Der Debugger öffnet ein Quellfenster, wenn er eine neue Quelldatei lädt. Um ein geöffnetes Quellfenster wiederherzustellen oder zu wechseln, wechseln Sie zum Menü Fenster , und wählen Sie unten im Menü aus der Liste der Fenster aus.
Der folgende Screenshot zeigt ein Beispiel für ein Quellfenster.
Jede Quelldatei befindet sich in einem eigenen Quellfenster. Der Titel jedes Quellfensters ist der vollständige Pfad der Quelldatei.
Verwenden des Quellfensters
Jedes Quellfenster zeigt den Text einer Quelldatei an. Sie können eine Quelldatei im Debugger nicht bearbeiten. Weitere Informationen zum Ändern der Schriftart- und Registerkarteneinstellungen finden Sie unter Ändern von Texteigenschaften.
Jedes Quellfenster verfügt über ein Kontextmenü mit zusätzlichen Befehlen. Um auf das Menü zuzugreifen, halten Sie die Titelleiste gedrückt (oder klicken Sie mit der rechten Maustaste darauf), oder wählen Sie das Symbol aus, das in der oberen rechten Ecke des Fensters angezeigt wird. In der folgenden Liste werden einige der Menübefehle beschrieben:
Wenn Sie den Anweisungszeiger auf aktuelle Zeile festlegen , wird der Wert des Anweisungszeigers in die Anweisung geändert, die der aktuellen Zeile entspricht. Dieser Befehl entspricht der Verwendung von Bearbeiten | Legen Sie den Befehl Current Instruction fest , oder drücken Sie STRG+UMSCHALT+I.
Diese Datei bearbeiten öffnet die Quelldatei in einem Text-Editor. Der Editor wird durch die Registrierungsinformationen des WinDiff-Editors oder durch den Wert der umgebungsvariablen WINDBG_INVOKE_EDITOR bestimmt. Betrachten Sie beispielsweise den Fall, wenn der Wert von WINDBG_INVOKE_EDITOR wie folgt lautet.
c:\my\path\myeditor.exe -file %f -line %l
In diesem Fall wird Myeditor.exe mit der einbasierten Zeilennummer der aktuellen Quelldatei geöffnet. Die Option %l gibt an, dass Zeilennummern als einbasiert gelesen werden sollen, während %f angibt, dass die aktuelle Quelldatei verwendet werden soll. Weitere Ersetzungsmöglichkeiten sind %L, die angibt, dass Zeilennummern nullbasiert sind, und %p, was auch darauf hindeuten kann, dass die aktuelle Quelldatei verwendet werden soll.
Die Auswahl auswerten wertet den aktuell ausgewählten Text mithilfe der C++-Ausdrucksauswertung aus. Das Ergebnis wird im Fenster Debuggerbefehl angezeigt. Wenn der markierte Text mehr als eine Zeile enthält, tritt ein Syntaxfehler auf. Dieser Befehl entspricht der Verwendung von Bearbeiten | Auswahlauswertungsbefehl , drücken Sie STRG+UMSCHALT+V, oder verwenden Sie ? ? (Evaluate C++-Ausdruck) -Befehl mit dem ausgewählten Text als Argument.
Ausgewählter Typ anzeigen zeigt den Datentyp des ausgewählten Objekts an. Diese Anzeige wird im Fenster Debuggerbefehl angezeigt. Wenn der ausgewählte Text mehr als ein einzelnes Objekt enthält, werden möglicherweise ein Syntaxfehler oder andere unregelmäßige Ergebnisse angezeigt. Dieser Befehl entspricht der Verwendung von Bearbeiten | Anzeigen des Befehls "Ausgewählter Typ" oder Drücken von STRG+UMSCHALT+Y.
Öffnen des Speicherfensters zur Auswahl öffnet ein neues angedocktes Speicherfenster, in dem der Arbeitsspeicher ab der Adresse des ausgewählten Ausdrucks angezeigt wird.
Durch hinzufügen einer Auswahl zum Überwachungsfenster wird das ausgewählte Quelltoken an das Überwachungsfenster angefügt.
Das Disassemblieren in der aktuellen Zeile bewirkt, dass die Anweisung, die der aktuellen Zeile entspricht, im Disassemblierungsfenster angezeigt wird. Die ausgewählte Zeile ist im Quellfenster und im Fenster Disassemblierung hervorgehoben, aber dieser Befehl wirkt sich nur auf die Anzeige aus. Der Anweisungszeiger wird nicht geändert. Wenn das Fenster Disassembly geschlossen wird, wenn dieser Befehl ausgewählt wird, wird es geöffnet.
Quellsprache auswählen zeigt eine Liste der Programmiersprachen an. Wählen Sie die Programmiersprache aus, die Sie zum Generieren der Quelldatei verwendet haben, und klicken Sie dann auf OK , um die grundlegende Syntaxherhebung für das aktuelle Quellfenster zu aktivieren. Wählen Sie Keine> aus<, um die Syntaxheraushebung für das aktuelle Quellfenster zu deaktivieren.
Quellfensterfarben und Hoverauswertung
Wenn der Debugger die Quelldateierweiterung erkennt, werden im Quellfenster bestimmte Syntaxelemente in Farbe angezeigt. Gehen Sie wie folgt vor, um die Farben zu deaktivieren oder zu ändern:
Um die Syntaxfarben in einem einzelnen Fenster zu deaktivieren, öffnen Sie das Kontextmenü des Quellfensters, wählen Quellsprache auswählen und dann Keine> aus<.
Um die Syntaxfarben für alle Quellfenster zu deaktivieren, wählen Sie im Menü Ansicht die Option Optionen aus. Deaktivieren Sie dann das Kontrollkästchen Quellsprachen analysieren .
Wählen Sie zum Ändern der Syntaxfarben im Menü Ansicht die Option Optionen aus. Wählen Sie dann im Bereich Farben ein Syntaxelement und dann die Schaltfläche Ändern aus, um die Farbe zu ändern.
Die Analysemethode, die für die Hervorhebung verwendet wird, wird durch die Programmiersprache bestimmt, die der Dateierweiterung für die Quelldatei zugeordnet ist. Um die Programmiersprache zu ändern, die einer bestimmten Dateierweiterung zugeordnet ist, verwenden Sie das Dialogfeld Dateierweiterungen für Quellsprachen. Um dieses Dialogfeld zu öffnen, wählen Sie im Menü Ansicht die Option Quellsprachdateierweiterungen aus.
Die Zeile, die den aktuellen Programmzähler darstellt, ist hervorgehoben. Zeilen, an denen Haltepunkte festgelegt werden, werden ebenfalls hervorgehoben.
Wenn Sie ein Quellfenster auswählen und dann mit der Maus auf ein Symbol in diesem Fenster zeigen, wird das Symbol ausgewertet. Die Auswertung entspricht der Auswertung, die vom Befehl dt (Anzeigetyp) erzeugt wird. Um diese Auswertung zu deaktivieren, wählen Sie im Menü Ansicht die Option Optionen aus. Deaktivieren Sie dann das Kontrollkästchen Beim Zeigen auswerten .
Weitere Informationen
Weitere Informationen zum Quelldebuggen und zugehörigen Befehlen finden Sie unter Debuggen im Quellmodus.