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 |
---|---|
|
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) |