IDebugControl3::SetEngineOptions-Methode (dbgeng.h)

Die SetEngineOptions-Methode ändert die Optionen der Engine.

Syntax

HRESULT SetEngineOptions(
  [in] ULONG Options
);

Parameter

[in] Options

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

Rückgabewert

Diese Methode gibt möglicherweise auch Fehlerwerte zurück. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.

Hinweise

Mit dieser Methode werden die Optionen der Engine auf die unter Optionen angegebenen Optionen festgelegt. Im Gegensatz zu AddEngineOptions werden alle Symboloptionen entfernt, die nicht im Options-Bitsatz aufgeführt sind.

Nachdem die Engine-Optionen geändert wurden, sendet die Engine eine Benachrichtigung an das Ereignisrückrufobjekt jedes Clients, indem das flag DEBUG_CES_ENGINE_OPTIONS 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 der Debugger-Engine übereinstimmt.
DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS Deaktivieren Sie die Versionsüberprüfung für Erweiterungen. Dadurch wird der Aufruf von CheckVersion durch die Debugger-Engine 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 keine Netzwerkpfade mehr zuweappt 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 Bitweises OR von DEBUG_ENGOPT_ALLOW_NETWORK_PATHS und DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS.
DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS Ignorieren Sie erwartete Ausnahmen für die erste Chance, 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 Unterbrechen Sie den Debugger, 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 angegeben 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, Bilder beim Debuggen von Minidumps zu laden, die keine Bilder enthalten.

DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS Erlauben Sie der Debugger-Engine, Seitenschutz auf dem Ziel zu bearbeiten, um das Festlegen von Softwarehaltepunkten in einem schreibgeschützten Speicherabschnitt zu ermöglichen.

Beim Festlegen von Softwarehaltepunkten ändert die Engine transparent den Speicher 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 über einen konsistenten Haltepunktzustand verfügen.

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

DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS Die Ausführung 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 stillen Modus. 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 alle 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. Beispielsweise lässt diese Option die Bildzuordnung für Speicherinhalte während des Debuggens von Minidump-Dateien nicht zu. Diese Option wirkt sich nicht auf vorhandene Zuordnungen aus. Dies 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 den Upload von Qm-Daten (Software Quality Metrics).

Anforderungen

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

Weitere Informationen

AddEngineOptions

GetEngineOptions

IDebugControl

IDebugControl2

IDebugControl3

RemoveEngineOptions