IDebugControl2::SetEngineOptions-Methode (dbgeng.h)

Die SetEngineOptions-Methode ändert die Optionen des Moduls.

Syntax

HRESULT SetEngineOptions(
  [in] ULONG Options
);

Parameter

[in] Options

Gibt die neuen Optionen des Moduls an. Optionen ist ein Bitsatz. Sie ersetzt die vorhandenen Symboloptionen. Eine Beschreibung der Engine-Optionen finden Sie unter Hinweise.

Rückgabewert

Diese Methode kann auch Fehlerwerte zurückgeben. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.

Hinweise

Diese Methode legt die Optionen des Moduls auf die unter Optionen angegebenen Optionen fest. Im Gegensatz zu AddEngineOptions werden alle Symboloptionen entfernt, die nicht im Options-Bitsatz aufgeführt sind.

Nachdem die Moduloptionen geändert wurden, sendet das Modul eine Benachrichtigung an das Ereignisrückrufobjekt jedes Clients, indem das DEBUG_CES_ENGINE_OPTIONS-Flag an die IDebugEventCallbacks::ChangeEngineState-Methode übergeben wird.

Die folgenden globalen Optionen wirken sich auf das Verhalten der Debugger-Engine aus:

Dauerhaft BESCHREIBUNG
DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION Die Debugger-Engine generiert eine Warnung anstelle eines Fehlers, wenn die Version der DbgHelp-DLL nicht mit der Version des Debuggermoduls übereinstimmt.
DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS Deaktivieren Sie die Versionsüberprüfung für Erweiterungen. Dadurch wird der Aufruf von CheckVersion des Debuggermoduls unterdrückt.
DEBUG_ENGOPT_ALLOW_NETWORK_PATHS Netzwerkfreigaben können zum Laden von Symbolen und Erweiterungen verwendet werden. Diese Option verhindert, dass die Engine beim Debuggen einiger Systemprozesse Netzwerkpfade nicht mehr zuzuordnen, und sollte mit Vorsicht verwendet werden.

Diese Option kann nicht festgelegt werden, wenn DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS festgelegt ist.

DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS Netzwerkfreigaben können nicht zum Laden von Symbolen und Erweiterungen verwendet werden. Die Engine versucht, diese Option beim Debuggen einiger Systemprozesse festzulegen.

Diese Option kann nicht festgelegt werden, wenn DEBUG_ENGOPT_ALLOW_NETWORK_PATHS festgelegt ist.

DEBUG_ENGOPT_NETWORK_PATHS Bitweise OR von DEBUG_ENGOPT_ALLOW_NETWORK_PATHS und DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS.
DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS Ignorieren Sie erwartete First-Chance-Ausnahmen, die vom Ladeprogramm in bestimmten Versionen von Windows generiert werden.

Diese Option ermöglicht beispielsweise die Ausführung von Windows 3.51-Binärdateien beim Debuggen von Windows 3.1- und 3.5-Systemen.

DEBUG_ENGOPT_INITIAL_BREAK Unterbrechen Sie den Debugger beim anfänglichen Ereignis des Ziels.
DEBUG_ENGOPT_INITIAL_MODULE_BREAK Brechen Sie in den Debugger ein, wenn das Ziel sein erstes Modul lädt.
DEBUG_ENGOPT_FINAL_BREAK Unterbrechen Sie den Debugger beim letzten Ereignis des Ziels. In einem Livebenutzermodusziel wird der Prozess beendet. Es hat keine Auswirkungen im Kernelmodus.
DEBUG_ENGOPT_NO_EXECUTE_REPEAT Wenn ein leerer Befehl erteilt wird, wiederholt die Debugger-Engine den letzten Befehl nicht.
DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION Verhindern, dass der Debugger Module lädt, deren Images nicht zugeordnet werden können.

Der Debugger versucht, Images beim Debuggen von Minidumps zu laden, die keine Images enthalten.

DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS Erlauben Sie der Debugger-Engine, den Seitenschutz für das Ziel zu bearbeiten, um das Festlegen von Software-Breakpoints in einem schreibgeschützten Abschnitt des Arbeitsspeichers zu ermöglichen.

Beim Festlegen von Software-Haltepunkten ändert das Modul transparent den Arbeitsspeicher des Ziels, um eine Interruptanweisung einzufügen.

DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS Beim Debuggen im Livebenutzermodus führt die Engine zusätzliche Arbeit beim Einfügen und Entfernen von Haltepunkten aus, um sicherzustellen, dass alle Threads im Ziel jederzeit einen konsistenten Haltepunktzustand haben.

Diese Option ist nützlich, wenn mehrere Threads den Code verwenden können, für den der Haltepunkt festgelegt ist. Es kann jedoch die Möglichkeit von Deadlocks einführen.

DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS Das Ausführen von Shellbefehlen über den Debugger ist nicht zulässig.

Nachdem diese Option festgelegt wurde, kann sie nicht mehr festgelegt werden.

DEBUG_ENGOPT_KD_QUIET_MODE Aktivieren Sie den Ruhemodus. Weitere Informationen finden Sie unter sq (Set Quiet Mode).
DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT Deaktiviert die Unterstützung der Debugger-Engine für verwalteten Code. Wenn die Unterstützung für verwalteten Code bereits verwendet wird, hat diese Option keine Auswirkungen.
DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD Der Debugger lädt keine Symbole für Module, die geladen werden, während dieses Flag festgelegt ist.
DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS Verhindert befehle, die dazu führen würden, dass das Ziel mit der Ausführung beginnt.
DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING Die Zuordnung von Imagedateien vom Datenträger ist nicht zulässig. Diese Option lässt beispielsweise beim Debuggen von Minidump-Dateien keine Bildzuordnung für Speicherinhalte zu. Diese Option wirkt sich nicht auf vorhandene Zuordnungen aus. Es wirkt sich nur auf nachfolgende Versuche aus, Bilddateien zuzuordnen.
DEBUG_ENGOPT_PREFER_DML Der Debugger führt standardmäßig DML-erweiterte Versionen von Befehlen und Vorgängen aus.
DEBUG_ENGOPT_DISABLESQM Deaktiviert das Hochladen von Qm-Daten (Software Quality Metrics).

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dbgeng.h (einschließlich Dbgeng.h)

Weitere Informationen

AddEngineOptions

GetEngineOptions

IDebugControl

IDebugControl2

IDebugControl3

RemoveEngineOptions