Freigeben über


.reload (Modul neu laden)

Der Befehl .reload löscht alle Symbolinformationen für das angegebene Modul und lädt diese Symbole bei Bedarf neu. In einigen Fällen wird mit diesem Befehl auch das Modul selbst neu geladen oder entladen.

.reload [Options] [Module[=Address[,Size[,Timestamp]]]] 
.reload -?

Parameter

Optionen Jede der folgenden Optionen:

/d
Lädt alle Module in der Modulliste des Debuggers neu. (Wenn Sie alle Parameter weglassen, ist dies die Standardsituation beim Debuggen im Benutzermodus)

/f
Zwingt den Debugger, die Symbole sofort zu laden. Dieser Parameter hat Vorrang vor lazy symbol loading. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

/i
Ignoriert eine Unstimmigkeit in den Versionen der .pdb-Dateien. (Wenn Sie diesen Parameter nicht angeben, lädt der Debugger keine nicht übereinstimmenden Symboldateien) Wenn Sie /i verwenden, wird auch /f verwendet, auch wenn Sie es nicht ausdrücklich angeben.

/l
Listet die Module auf, lädt aber ihre Symbole nicht neu. (Im Kernel-Modus liefert dieser Parameter eine ähnliche Ausgabe wie der Befehl lm)

/n
Lädt nur Kernel-Symbole neu. Mit diesem Parameter werden keine Benutzersymbole neu geladen. (Sie können diese Option nur während der Fehlersuche im Kernel-Modus verwenden)

/o
Erzwingt das Überschreiben der zwischengespeicherten Dateien im nachgeschalteten Speicher eines Symbolservers. Wenn Sie dieses Flag verwenden, sollten Sie auch /f einfügen. Standardmäßig werden die nachgelagerten Speicherdateien nie überschrieben.

Da der Symbolserver unterschiedliche Dateinamen für die Symbole der verschiedenen Builds einer Binärdatei verwendet, müssen Sie diese Option nicht verwenden, es sei denn, Sie glauben, dass Ihr Downstream-Speicher beschädigt wurde.

/s
Lädt alle Module in der Modulbildliste des Systems neu. (Wenn Sie alle Parameter weglassen, ist dies die Standardsituation beim Debuggen im Kernel-Modus)

Wenn Sie ein einzelnes Systemmodul namentlich laden, während Sie das Debugging im Benutzermodus durchführen, müssen Sie /s einschließen.

/u
Entlädt das angegebene Modul und alle seine Symbole. Der Debugger entlädt jedes geladene Modul, dessen Name mit Module übereinstimmt, unabhängig vom vollständigen Pfad. Auch Bildnamen werden durchsucht. Weitere Informationen finden Sie in der Anmerkung im Abschnitt Bemerkungen.

/unl
Lädt Symbole auf der Grundlage der Bildinformationen in der Liste der nicht geladenen Module neu.

/Benutzer
Lädt nur Benutzersymbole neu. (Sie können diese Option nur während der Fehlersuche im Kernel-Modus verwenden)

/v
Schaltet den ausführlichen Modus ein.

/w
Behandelt Modul als literale Zeichenkette. Diese Behandlung verhindert, dass der Debugger Wildcard-Zeichen expandiert.

Modul
Gibt den Namen eines Abbilds auf dem Zielsystem an, für das Symbole auf dem Host-Computer neu geladen werden sollen. Das Modul sollte den Namen und die Dateinamenerweiterung der Datei enthalten. Wenn Sie nicht die Option /w verwenden, kann Modul eine Vielzahl von Platzhalterzeichen und Spezifizierern enthalten. Weitere Informationen über die Syntax finden Sie unter String Wildcard Syntax. Wenn Sie Modul weglassen, hängt das Verhalten des Befehls .reload davon ab, welche Optionen Sie verwenden.

Adresse
Gibt die Basisadresse des Moduls an. In der Regel benötigen Sie diese Adresse nur, wenn der Header des Bildes beschädigt oder ausgelagert ist.

Größe
Gibt die Größe des Modulbildes an. In vielen Situationen kennt der Debugger die korrekte Größe des Moduls. Wenn der Debugger die richtige Größe nicht kennt, sollten Sie Size angeben. Diese Größe kann die tatsächliche Modulgröße oder eine größere Zahl sein, aber die Größe sollte nicht kleiner sein. In der Regel wird diese Größe nur benötigt, wenn der Header des Bildes beschädigt oder ausgelagert ist.

Zeitstempel
Gibt den Zeitstempel des Modulabbilds an. In vielen Situationen kennt der Debugger den korrekten Zeitstempel des Moduls. Wenn der Debugger die Zeitstempel nicht kennt, sollten Sie Timestamp angeben. Normalerweise wird dieser Zeitstempel nur benötigt, wenn der Header des Bildes beschädigt oder ausgelagert ist.

Hinweis Zwischen den Parametern Adresse, Größe und Zeitstempel darf kein Leerzeichen stehen.

-?
Zeigt einen kurzen Hilfetext für diesen Befehl an.

Environment

Element Beschreibung
Modi Benutzermodus, Kernel-Modus
Ziele Live, Crash Dump
Plattformen Alle

Zusätzliche Informationen

Weitere Informationen zum verzögerten (lazy) Laden von Symbolen finden Sie unter Deferred Symbol Loading. Weitere Informationen zu anderen Symboloptionen finden Sie unter Symboloptionen einstellen.

Hinweise

Der Befehl .reload bewirkt nicht, dass Symbolinformationen gelesen werden. Stattdessen teilt dieser Befehl dem Debugger mit, dass sich die Symboldateien möglicherweise geändert haben oder dass ein neues Modul zur Modulliste hinzugefügt werden sollte. Dieser Befehl veranlasst den Debugger, seine Modulliste zu überarbeiten und seine Symbolinformationen für die angegebenen Module zu löschen. Die eigentlichen Symbolinformationen werden erst dann aus den einzelnen .pdb-Dateien gelesen, wenn die Informationen benötigt werden. (Diese Art des Ladens wird als lazy symbol loading oder deferred symbol loading bezeichnet)

Sie können das Laden von Symbolen erzwingen, indem Sie die Option /f verwenden oder den Befehl ld (Load Symbols) ausführen.

Der Befehl .reload ist nützlich, wenn das System nicht mehr reagiert (d. h. abstürzt), was dazu führen kann, dass Sie Symbole für den Zielcomputer verlieren, der gerade debuggt wird. Der Befehl kann auch nützlich sein, wenn Sie den Symbolbaum aktualisiert haben.

Wenn der Image-Header aus irgendeinem Grund nicht korrekt ist, z. B. weil das Modul entladen oder ausgelagert wurde, können Sie Symbole korrekt laden, indem Sie das Argument /unl verwenden oder sowohl Adresse als auch Größe angeben.

Der Befehl .reload /u führt eine umfassende Suche durch. Der Debugger versucht zunächst, Module mit einem exakten Modulnamen abzugleichen, unabhängig vom Pfad. Wenn der Debugger diese Übereinstimmung nicht findet, wird Modul als Name des geladenen Bildes behandelt. Wenn die HAL, die sich im Speicher befindet, beispielsweise den Modulnamen halacpi.dll hat, entladen die beiden folgenden Befehle ihre Symbole.

kd> .reload /u halacpi.dll

kd> .reload /u hal

Wenn Sie im Benutzermodus debuggen und ein Modul laden möchten, das nicht in der Modulliste der Zielanwendung enthalten ist, müssen Sie die Option /s einfügen, wie das folgende Beispiel zeigt.

0:000> .reload /u ntdll.dll
Unloaded ntdll.dll

0:000> .reload /s /f ntdll.dll