Freigeben über


SymSetOptions-Funktion (dbghelp.h)

Legt die Optionsmaske fest.

Syntax

DWORD IMAGEAPI SymSetOptions(
  [in] DWORD SymOptions
);

Parameter

[in] SymOptions

Die Symboloptionen. Null ist ein gültiger Wert und gibt an, dass alle Optionen deaktiviert sind. Die Optionswerte werden mit dem OR-Operator kombiniert, um einen gültigen Optionswert zu bilden. Die folgenden Werte sind gültig.

Wert Bedeutung
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
0x00000800
Ermöglicht die Verwendung von Symbolen, die mit absoluten Adressen gespeichert werden. Die meisten Symbole werden als RVAs aus der Basis des Moduls gespeichert. DbgHelp übersetzt sie in absolute Adressen. Es gibt Symbole, die als absolute Adresse gespeichert werden. Diese haben sehr spezielle Zwecke und werden in der Regel nicht verwendet.

DbgHelp 5.1 und früher: Dieser Wert wird nicht unterstützt.

SYMOPT_ALLOW_ZERO_ADDRESS
0x01000000
Ermöglicht die Verwendung von Symbolen ohne Adresse. Standardmäßig filtert DbgHelp Symbole ohne Adresse heraus.
SYMOPT_AUTO_PUBLICS
0x00010000
Suchen Sie die öffentlichen Symbole nicht bei der Suche nach Symbolen nach Adresse oder beim Aufzählen von Symbolen, es sei denn, sie wurden nicht in den globalen Symbolen oder im aktuellen Bereich gefunden. Diese Option hat keine Auswirkungen auf SYMOPT_PUBLICS_ONLY.

DbgHelp 5.1 und früher: Dieser Wert wird nicht unterstützt.

SYMOPT_CASE_INSENSITIVE
0x00000001
Bei allen Symbolsuchen wird die Groß-/Kleinschreibung nicht berücksichtigt.
SYMOPT_DEBUG
0x80000000
Übergeben Sie die Debugausgabe über OutputDebugString oder die Rückruffunktion SymRegisterCallbackProc64 .
SYMOPT_DEFERRED_LOADS
0x00000004
Symbole werden erst geladen, wenn ein Verweis erforderlich ist, der das Laden der Symbole erfordert. Dies ist die schnellste und effizienteste Möglichkeit, den Symbolhandler zu verwenden.
SYMOPT_DISABLE_SYMSRV_AUTODETECT
0x02000000
Deaktiviert die automatische Erkennung von Symbolserverspeichern im Symbolpfad, auch ohne die Bezeichnung "SRV*", wobei die Kompatibilität mit dem vorherigen Verhalten beibehalten wird.

DbgHelp 6.6 und früher: Dieser Wert wird nicht unterstützt.

SYMOPT_EXACT_SYMBOLS
0x00000400
Laden Sie keine nicht übereinstimmende PDB-Datei. Laden Sie keine Exportsymbole, wenn alles andere fehlschlägt.
SYMOPT_FAIL_CRITICAL_ERRORS
0x00000200
Zeigen Sie keine Systemdialogfelder an, wenn ein Medienfehler auftritt, z. B. keine Medien in einem Laufwerk. Stattdessen tritt der Fehler im Hintergrund auf.
SYMOPT_FAVOR_COMPRESSED
0x00800000
Wenn sowohl eine unkomprimierte als auch eine komprimierte Datei verfügbar ist, bevorzugen Sie die komprimierte Datei. Diese Option eignet sich für langsame Verbindungen.
SYMOPT_FLAT_DIRECTORY
0x00400000
Symbole werden im Stammverzeichnis des Standardspeichers gespeichert.

DbgHelp 6.1 und früher: Dieser Wert wird nicht unterstützt.

SYMOPT_IGNORE_CVREC
0x00000080
Ignorieren Sie beim Laden einer PDB-Datei Pfadinformationen im CodeView-Datensatz des Bildheaders.
SYMOPT_IGNORE_IMAGEDIR
0x00200000
Ignorieren Sie das Imageverzeichnis.

DbgHelp 6.1 und früher: Dieser Wert wird nicht unterstützt.

SYMOPT_IGNORE_NT_SYMPATH
0x00001000
Verwenden Sie nicht den von _NT_SYMBOL_PATH angegebenen Pfad, wenn der Benutzer SymSetSearchPath ohne gültigen Pfad aufruft.

DbgHelp 5.1: Dieser Wert wird nicht unterstützt.

SYMOPT_INCLUDE_32BIT_MODULES
0x00002000
Schließen Sie beim Debuggen unter 64-Bit-Windows alle 32-Bit-Module ein.
SYMOPT_LOAD_ANYTHING
0x00000040
Deaktivieren Sie Überprüfungen, um sicherzustellen, dass eine Datei (.exe, DBG oder PDB) die richtige Datei ist. Laden Sie stattdessen die erste Datei, die sich befindet.
SYMOPT_LOAD_LINES
0x00000010
Lädt Zeilennummerninformationen.
SYMOPT_NO_CPP
0x00000008
Alle C++-symbole, die das Symboltrennzeichen "::" enthalten, werden durch "__" ersetzt. Diese Option ist für Debugger vorhanden, die die Analyse von echten C++-Symbolnamen nicht verarbeiten können.
SYMOPT_NO_IMAGE_SEARCH
0x00020000
Suchen Sie das Bild nicht nach dem Symbolpfad, wenn Sie die Symbole für ein Modul laden, wenn der Modulheader nicht gelesen werden kann.

DbgHelp 5.1: Dieser Wert wird nicht unterstützt.

SYMOPT_NO_PROMPTS
0x00080000
Verhindert die Aufforderung zur Überprüfung vom Symbolserver.
SYMOPT_NO_PUBLICS
0x00008000
Suchen Sie die publics-Tabelle nicht nach Symbolen. Diese Option sollte wenig Auswirkungen haben, da es Kopien der öffentlichen Symbole in der globals-Tabelle gibt.

DbgHelp 5.1: Dieser Wert wird nicht unterstützt.

SYMOPT_NO_UNQUALIFIED_LOADS
0x00000100
Verhindert, dass Symbole geladen werden, wenn der Aufrufer Symbole über mehrere Module hinweg untersucht. Untersuchen Sie nur das Modul, dessen Symbole bereits geladen wurden.
SYMOPT_OVERWRITE
0x00100000
Überschreiben Sie den Downlevelspeicher aus dem Symbolspeicher.

DbgHelp 6.1 und früher: Dieser Wert wird nicht unterstützt.

SYMOPT_PUBLICS_ONLY
0x00004000
Verwenden Sie keine privaten Symbole. Die Version von DbgHelp, die im Lieferumfang einer früheren Windows-Version enthalten war, unterstützte nur öffentliche Symbole. Diese Option bietet Kompatibilität mit dieser Einschränkung.

DbgHelp 5.1: Dieser Wert wird nicht unterstützt.

SYMOPT_SECURE
0x00040000
DbgHelp lädt keinen anderen Symbolserver als SymSrv. SymSrv verwendet nicht den in _NT_SYMBOL_PATH angegebenen Downstreamspeicher. Nachdem dieses Flag festgelegt wurde, kann es nicht mehr gelöscht werden.

DbgHelp 6.0 und 6.1: Dieses Flag kann gelöscht werden.

DbgHelp 5.1: Dieser Wert wird nicht unterstützt.

SYMOPT_UNDNAME
0x00000002
Alle Symbole werden in nicht ergänzter Form dargestellt.

Diese Option hat keine Auswirkungen auf globale oder lokale Symbole, da sie nicht ausgewertet gespeichert werden. Diese Option gilt nur für öffentliche Symbole.

Rückgabewert

Die Funktion gibt die aktuelle Optionsmaske zurück.

Hinweise

Der Optionswert kann beliebig oft geändert werden, während die Bibliothek von einer Anwendung verwendet wird. Die Optionsänderung wirkt sich auf alle zukünftigen Aufrufe des Symbolhandlers aus.

Rufen Sie die SymGetOptions-Funktion auf, um die aktuelle Optionsmaske abzurufen.

Alle DbgHelp-Funktionen, z. B. diese, sind singlethreaded. Daher führen an diese Funktion gerichtete Aufrufe mehrerer Threads wahrscheinlich zu unerwartetem Verhalten oder einer Beschädigung des Speichers. Um dies zu vermeiden, müssen Sie alle an diese Funktion gerichteten gleichzeitigen Aufrufe mehrerer Threads synchronisieren.

Beispiele

Ein Beispiel finden Sie unter Initialisieren des Symbolhandlers.

Anforderungen

   
Zielplattform Windows
Kopfzeile dbghelp.h
Bibliothek Dbghelp.lib
DLL Dbghelp.dll
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

DbgHelp-Funktionen

SymGetOptions