Symboloptionen

Es stehen eine Reihe von Optionen zur Verfügung, um zu steuern, wie Symbole geladen und verwendet werden. Diese Optionen können auf verschiedene Arten festgelegt werden.

In der folgenden Tabelle sind diese Symboloptionen aufgeführt:

Flag Optionsname Standard im Debugger Standardeinstellung in DBH

0x1

SYMOPT_CASE_INSENSITIVE

Andererseits

Andererseits

0x2

SYMOPT_UNDNAME

Andererseits

Andererseits

0x4

SYMOPT_DEFERRED_LOADS

Ein

Aus

0x8

SYMOPT_NO_CPP

Aus

Aus

0x10

SYMOPT_LOAD_LINES

Off in KD und CDB

Ein in WinDbg

Ein

0x20

SYMOPT_OMAP_FIND_NEAREST

Ein

Aus

0x40

SYMOPT_LOAD_ANYTHING

Aus

Aus

0x80

SYMOPT_IGNORE_CVREC

Aus

Aus

0x100

SYMOPT_NO_UNQUALIFIED_LOADS

Aus

Aus

0x200

SYMOPT_FAIL_CRITICAL_ERRORS

Ein

Aus

0x400

SYMOPT_EXACT_SYMBOLS

Aus

Andererseits

0x800

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

Aus

Andererseits

0x1000

SYMOPT_IGNORE_NT_SYMPATH

Aus

Aus

0x2000

SYMOPT_INCLUDE_32BIT_MODULES

Aus

Aus

0x4000

SYMOPT_PUBLICS_ONLY

Aus

Aus

0x8000

SYMOPT_NO_PUBLICS

Aus

Aus

0x10000

SYMOPT_AUTO_PUBLICS

Andererseits

Andererseits

0x20000

SYMOPT_NO_IMAGE_SEARCH

Ein

Aus

0x40000

SYMOPT_SECURE

Aus

Aus

0x80000

SYMOPT_NO_PROMPTS

Ein in KD und CDB

Aus in WinDbg

Aus

0x80000000

SYMOPT_DEBUG

Aus

Aus

Ändern der Symboloptionseinstellungen

Der Befehl .symopt (Symboloptionen festlegen) kann verwendet werden, um die Symboloptionseinstellungen zu ändern oder anzuzeigen. Darüber hinaus stehen eine Reihe von Befehlszeilenparametern und -befehlen zur Verfügung, um diese Einstellungen zu ändern. diese werden in den einzelnen abschnitten SYMOPT_XXX aufgeführt.

Sie können auch alle Einstellungen gleichzeitig mit der Befehlszeilenoption -sflags steuern. Diese Option kann mit einer Dezimalzahl oder mit einer Hexadezimalzahl mit dem Präfix 0x verfolgt werden. Es wird empfohlen, hexadezimal zu verwenden, da die Symbolflags auf diese Weise ordnungsgemäß ausgerichtet sind. Seien Sie bei der Verwendung dieser Methode vorsichtig, da sie das gesamte Bitfeld festlegt und alle Standardwerte des Symbolhandlers überschreibt. Beispielsweise aktiviert -sflags 0x401 nicht nur SYMOPT_EXACT_SYMBOLS und SYMOPT_CASE_INSENSITIVE, sondern deaktiviert auch alle anderen Optionen, die normalerweise standardmäßig aktiviert sind!

Der Standardwert für die Gesamtzahl der Flagbits ist 0x30237 in WinDbg, 0xB0227 in CDB und KD und 0x10C13 im DBH-Tool, wenn diese Programme ohne symbolbezogene Befehlszeilenoptionen gestartet werden.

SYMOPT_CASE_INSENSITIVE

Diese Symboloption bewirkt, dass bei allen Suchen nach Symbolnamen die Groß-/Kleinschreibung nicht beachtet wird.

Diese Option ist standardmäßig in allen Debuggern aktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x1 bzw. .symopt-0x1 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig aktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +1 bzw. symopt -1 aktiviert oder deaktiviert werden.

SYMOPT_UNDNAME

Diese Symboloption bewirkt, dass öffentliche Symbolnamen nicht gekennzeichnet werden, wenn sie angezeigt werden, und die Suche nach Symbolnamen führt dazu, dass Symboldekorationen ignoriert werden. Private Symbolnamen werden nie dekoriert, unabhängig davon, ob diese Option aktiv ist. Informationen zu Symbolnamendekorationen finden Sie unter Öffentliche und private Symbole.

Diese Option ist standardmäßig in allen Debuggern aktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x2 bzw. .symopt-0x2 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig aktiviert. Sie ist deaktiviert, wenn die Befehlszeilenoption -d verwendet wird. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +2 oder symopt -2 aktiviert oder deaktiviert werden.

SYMOPT_DEFERRED_LOADS

Diese Symboloption wird als verzögertes Laden von Symbolen oder verzögertes Laden von Symbolen bezeichnet. Wenn es aktiv ist, werden Symbole nicht geladen, wenn die Zielmodule geladen werden. Stattdessen werden Symbole nach Bedarf vom Debugger geladen. Weitere Informationen finden Sie unter Verzögertes Laden von Symbolen .

Diese Option ist standardmäßig in allen Debuggern aktiviert. In CDB und KD deaktiviert die Befehlszeilenoption -s diese Option. Sie kann auch in CDB deaktiviert werden, indem Sie die LazyLoad-Variable in der tools.ini-Datei verwenden. Sobald der Debugger ausgeführt wird, kann diese Option mithilfe von .symopt+0x4 bzw. .symopt-0x4 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +4 bzw. symopt -4 aktiviert oder deaktiviert werden.

SYMOPT_NO_CPP

Mit dieser Symboloption wird die C++-Übersetzung deaktiviert. Wenn diese Symboloption festgelegt ist, wird :: in allen Symbolen durch __ ersetzt.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -snc aktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x8 bzw. .symopt-0x8 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +8 oder symopt -8 aktiviert oder deaktiviert werden.

SYMOPT_LOAD_LINES

Mit dieser Symboloption können Zeilennummerninformationen aus Quelldateien gelesen werden. Diese Option muss aktiviert sein, damit das Quelldebuggen ordnungsgemäß funktioniert.

In KD und CDB ist diese Option standardmäßig deaktiviert. In WinDbg ist diese Option standardmäßig aktiviert. In CDB und KD aktiviert die Befehlszeilenoption -lines diese Option. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x10 bzw. .symopt-0x10 aktiviert oder deaktiviert werden. Sie kann auch mithilfe des Befehls .lines (Source Line Support umschalten) ein- und ausgeschaltet werden.

Diese Option ist in DBH standardmäßig aktiviert. Sobald DBH ausgeführt wird, kann es mit symopt +10 bzw. symopt -10 bzw. symopt -10 aktiviert oder deaktiviert werden.

SYMOPT_OMAP_FIND_NEAREST

Wenn Code optimiert wurde und kein Symbol an der erwarteten Position vorhanden ist, wird mit dieser Option stattdessen das nächstgelegene Symbol verwendet.

Diese Option ist standardmäßig in allen Debuggern aktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x20 bzw. .symopt-0x20 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig aktiviert. Sobald DBH ausgeführt wird, kann es mit symopt +20 bzw. symopt -20 bzw. symopt -20 aktiviert oder deaktiviert werden.

SYMOPT_LOAD_ANYTHING

Diese Symboloption verringert die Auswahl des Symbolhandlers, wenn er versucht, Symbole zuzuordnen.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x40 bzw. .symopt-0x40 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mit symopt +40 bzw. symopt -40 bzw. symopt -40 aktiviert oder deaktiviert werden.

SYMOPT_IGNORE_CVREC

Diese Symboloption bewirkt, dass der Symbolhandler den CV-Eintrag im geladenen Bildheader ignoriert, wenn nach Symbolen gesucht wird.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -sicv aktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x80 bzw. .symopt-0x80 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mit symopt +80 bzw. symopt -80 bzw. symopt -80 aktiviert oder deaktiviert werden.

SYMOPT_NO_UNQUALIFIED_LOADS

Mit dieser Symboloption wird das automatische Laden von Modulen durch den Symbolhandler deaktiviert. Wenn diese Option festgelegt ist und der Debugger versucht, einem Symbol zu entsprechen, sucht er nur nach Modulen, die bereits geladen wurden.

Diese Option kann als Schutz gegen die falsche Eingabe eines Symbolnamens verwendet werden. Normalerweise führt ein falsch typisiertes Symbol dazu, dass der Debugger anhält, während er alle entladenen Symboldateien durchsucht. Wenn diese Option aktiv ist, wird in den geladenen Modulen kein falsch typisiertes Symbol gefunden, und die Suche wird beendet.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -snul aktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x100 bzw. .symopt-0x100 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +100 bzw. symopt -100 aktiviert oder deaktiviert werden.

SYMOPT_FAIL_CRITICAL_ERRORS

Diese Symboloption führt dazu, dass Dialogfelder für Dateizugriffsfehler unterdrückt werden.

Wenn diese Option deaktiviert ist, führen Dateizugriffsfehler wie "Laufwerk nicht bereit", die beim Laden von Symbolen auftreten, dazu, dass Dialogfelder angezeigt werden. Wenn diese Option aktiviert ist, werden diese Felder unterdrückt, und alle Zugriffsfehler erhalten eine "Fail"-Antwort.

Diese Option ist standardmäßig in allen Debuggern aktiviert. Sie kann mithilfe der Befehlszeilenoption -sdce deaktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x200 bzw. .symopt-0x200 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +200 bzw. symopt -200 aktiviert oder deaktiviert werden.

SYMOPT_EXACT_SYMBOLS

Diese Symboloption bewirkt, dass der Debugger eine strenge Auswertung aller Symboldateien durchführt.

Wenn diese Option aktiviert ist, werden die Symbole bereits bei der geringsten Diskrepanz zwischen den Symboldateien und den Erwartungen des Symbolhandlers ignoriert.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -ses aktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x400 bzw. .symopt-0x400 aktiviert oder deaktiviert werden.

Die Befehlszeilenoption -failinc aktiviert auch SYMOPT_EXACT_SYMBOLS. Wenn Sie außerdem einen Benutzermodus-Minidump oder einen Kernelmodus-Minidump debuggen, verhindert -failinc, dass der Debugger Module lädt, deren Images nicht zugeordnet werden können.

Diese Option ist in DBH standardmäßig aktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +400 bzw. symopt -400 aktiviert oder deaktiviert werden.

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

Mit dieser Symboloption kann DbgHelp Symbole lesen, die an einer absoluten Adresse im Arbeitsspeicher gespeichert sind. Diese Option ist in den meisten Fällen nicht erforderlich.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x800 bzw. .symopt-0x800 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig aktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +800 bzw. symopt -800 aktiviert oder deaktiviert werden.

SYMOPT_IGNORE_NT_SYMPATH

Diese Symboloption bewirkt, dass der Debugger die Einstellungen der Umgebungsvariablen für den Symbolpfad und den pfad des ausführbaren Images ignoriert.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -sins aktiviert werden. Es kann jedoch nicht von .symopt gesteuert werden, sobald der Debugger ausgeführt wird, da die Umgebungsvariablen nur beim Start gelesen werden.

Diese Option ist in DBH standardmäßig deaktiviert und wird von DBH in allen Fällen ignoriert.

SYMOPT_PUBLICS_ONLY

Diese Symboloption bewirkt, dass DbgHelp private Symboldaten ignoriert und nur die öffentliche Symboltabelle nach Symbolinformationen sucht. Dadurch wird das Verhalten von DbgHelp emuliert, bevor unterstützung für diese Typen hinzugefügt wurde. siehe Öffentliche und private Symbole.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x4000 bzw. .symopt-0x4000 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sie wird aktiviert, wenn die Befehlszeilenoption -d verwendet wird. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +4000 bzw. symopt -4000 aktiviert oder deaktiviert werden.

SYMOPT_NO_PUBLICS

Diese Symboloption verhindert, dass DbgHelp die öffentliche Symboltabelle durchsucht. Dies kann die Symbolenumeration und die Suche nach Symbolen viel schneller machen. Wenn Sie sich ausschließlich mit der Suchgeschwindigkeit befassen, ist die option SYMOPT_AUTO_PUBLICS dieser Option im Allgemeinen vorzuziehen. Informationen zur öffentlichen Symboltabelle finden Sie unter Öffentliche und private Symbole.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x8000 bzw. .symopt-0x8000 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +8000 bzw. symopt -8000 aktiviert oder deaktiviert werden.

SYMOPT_AUTO_PUBLICS

Diese Symboloption bewirkt, dass DbgHelp die öffentliche Symboltabelle in einer PDB-Datei nur als letztes Mittel durchsucht. Wenn beim Durchsuchen der privaten Symboldaten Übereinstimmungen gefunden werden, werden die öffentlichen Symbole nicht durchsucht. Dadurch wird die Geschwindigkeit der Symbolsuche verbessert.

Diese Option ist in allen Debuggern standardmäßig aktiviert. Sie kann mithilfe der Befehlszeilenoption -sup deaktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x10000 bzw. .symopt-0x10000 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig aktiviert. Sie wird deaktiviert, wenn die Befehlszeilenoption -d verwendet wird. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +10000 oder symopt -10000 aktiviert oder deaktiviert werden.

Diese Symboloption verhindert, dass DbgHelp den Datenträger nach einer Kopie des Images durchsucht, wenn Symbole geladen werden.

Diese Option ist in allen Debuggern standardmäßig aktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x20000 bzw. .symopt-0x20000 aktiviert oder deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +20000 bzw. symopt -20000 aktiviert oder deaktiviert werden.

SYMOPT_SECURE

(Nur Kernelmodus) Diese Symboloption gibt an , ob der sichere Modus aktiv ist.

Der sichere Modus ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -secure aktiviert werden. Wenn der Debugger ausgeführt wird, sich im ruhenden Modus befindet und keine Debugserver eingerichtet hat, kann der sichere Modus mithilfe von .symopt+0x40000 oder .secure (Secure Mode aktivieren) aktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +40000 oder symopt -40000 aktiviert oder deaktiviert werden.

Der sichere Modus kann nie deaktiviert werden, sobald er aktiviert wurde.

SYMOPT_NO_PROMPTS

Diese Symboloption unterdrückt Authentifizierungsdialogfelder vom Proxyserver. Dies kann dazu führen, dass SymSrv nicht auf einen Symbolspeicher im Internet zugreifen kann.

Weitere Informationen finden Sie unter Firewalls und Proxyserver.

In KD und CDB ist diese Option standardmäßig aktiviert. in WinDbg ist diese Option standardmäßig deaktiviert. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x80000 bzw. .symopt-0x80000, gefolgt vom Befehl .reload (Reload Module) aktiviert oder deaktiviert werden. Es kann auch mithilfe der ! sym-Eingabeaufforderungen aus und !sym prompts-Erweiterungsbefehle , gefolgt vom Befehl .reload (Reload Module) aktiviert und deaktiviert werden.

Diese Option ist in DBH standardmäßig deaktiviert. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +80000 oder symopt -80000 aktiviert oder deaktiviert werden.

-SYMOPT_DEBUG

Mit dieser Symboloption wird das Laden von Rauschsymbolen aktiviert. Dadurch wird der Debugger angewiesen, Informationen zur Suche nach Symbolen anzuzeigen.

Der Name jeder Symboldatei wird beim Laden angezeigt. Wenn der Debugger keine Symboldatei laden kann, wird eine Fehlermeldung angezeigt. Fehlermeldungen für PDB-Dateien werden im Text angezeigt. Fehlermeldungen für DBG-Dateien werden in Form eines Fehlercodes ausgegeben. diese Codes werden in der Datei winerror.h erläutert.

Wenn eine Bilddatei nur geladen wird, um symbolische Headerinformationen wiederherzustellen, wird diese ebenfalls angezeigt.

Diese Option ist in allen Debuggern standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -n aktiviert werden. Sobald der Debugger ausgeführt wird, kann er mithilfe von .symopt+0x80000000 bzw. .symopt-0x80000000 aktiviert oder deaktiviert werden. Es kann auch mithilfe der Erweiterungsbefehle !sym noisy und !sym quiet aktiviert und deaktiviert werden.

Hinweis Diese Option sollte nicht mit dem lauten Laden von Quellen verwechselt werden, das durch den Befehl .srcnoisy (Noisy Source Loading) gesteuert wird.

Diese Option ist in DBH standardmäßig deaktiviert. Sie kann mithilfe der Befehlszeilenoption -n aktiviert werden. Sobald DBH ausgeführt wird, kann es mithilfe von symopt +800000000 oder symopt -800000000 aktiviert oder deaktiviert werden. Sie kann auch mithilfe der Befehle "Verbose on" und "verbose off" aktiviert und deaktiviert werden.