Metodo IDebugControl::SetEngineOptions (dbgeng.h)

Il metodo SetEngineOptions modifica le opzioni del motore.

Sintassi

HRESULT SetEngineOptions(
  [in] ULONG Options
);

Parametri

[in] Options

Specifica le nuove opzioni del motore. Le opzioni sono un set di bit; sostituirà le opzioni dei simboli esistenti. Per una descrizione delle opzioni del motore, vedere Osservazioni.

Valore restituito

Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.

Commenti

Questo metodo imposta le opzioni del motore su quelle specificate in Opzioni. A differenza di AddEngineOptions, tutte le opzioni dei simboli non elencate nel set di bit Opzioni verranno rimosse.

Dopo la modifica delle opzioni del motore, il motore invia una notifica all'oggetto callback dell'evento di ogni client passando il flag di DEBUG_CES_ENGINE_OPTIONS al metodo IDebugEventCallbacks::ChangeEngineState .

Le opzioni globali seguenti influiscono sul comportamento del motore del debugger:

Costante Descrizione
DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION Il motore del debugger genera un avviso anziché un errore se la versione della DLL DbgHelp non corrisponde alla versione del motore del debugger.
DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS Disabilitare il controllo della versione per le estensioni. Questa operazione elimina la chiamata del motore del debugger a CheckVersion.
DEBUG_ENGOPT_ALLOW_NETWORK_PATHS Le condivisioni di rete possono essere usate per il caricamento di simboli e estensioni. Questa opzione impedisce al motore di impedire i percorsi di rete durante il debug di alcuni processi di sistema e deve essere usato con cautela.

Questa opzione non può essere impostata se è impostata DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS.

DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS Le condivisioni di rete non possono essere usate per il caricamento di simboli e estensioni. Il motore tenta di impostare questa opzione durante il debug di alcuni processi di sistema.

Questa opzione non può essere impostata se è impostata DEBUG_ENGOPT_ALLOW_NETWORK_PATHS.

DEBUG_ENGOPT_NETWORK_PATHS OR bit per bit di DEBUG_ENGOPT_ALLOW_NETWORK_PATHS e DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS.
DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS Ignorare le eccezioni previste per la prima probabilità generate dal caricatore in determinate versioni di Windows.

Questa opzione, ad esempio, consente l'esecuzione di file binari di Windows 3.51 durante il debug dei sistemi Windows 3.1 e 3.5.

DEBUG_ENGOPT_INITIAL_BREAK Eseguire l'interruzione nel debugger all'evento iniziale della destinazione.
DEBUG_ENGOPT_INITIAL_MODULE_BREAK Eseguire l'interruzione nel debugger quando la destinazione carica il primo modulo.
DEBUG_ENGOPT_FINAL_BREAK Eseguire l'interruzione nel debugger all'evento finale della destinazione. In una destinazione in modalità utente live, si tratta di quando il processo viene chiuso. Non ha alcun effetto in modalità kernel.
DEBUG_ENGOPT_NO_EXECUTE_REPEAT Quando viene assegnato un comando vuoto, il motore del debugger non ripete l'ultimo comando.
DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION Impedire al debugger di caricare i moduli di cui non è possibile eseguire il mapping delle immagini.

Il debugger tenta di caricare immagini durante il debug di minidump che non contengono immagini.

DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS Consentire al motore del debugger di modificare le protezioni di pagina nella destinazione per consentire l'impostazione dei punti di interruzione software in una sezione di sola lettura della memoria.

Quando si impostano punti di interruzione software, il motore modifica in modo trasparente la memoria della destinazione per inserire un'istruzione di interruzione.

DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS Nel debug in modalità utente in tempo reale, il motore esegue operazioni aggiuntive durante l'inserimento e la rimozione di punti di interruzione per garantire che tutti i thread nella destinazione abbiano uno stato di punto di interruzione coerente in ogni momento.

Questa opzione è utile quando più thread possono usare il codice per il quale è impostato il punto di interruzione. Tuttavia, può introdurre la possibilità di deadlock.

DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS Non consentire l'esecuzione di comandi della shell tramite il debugger.

Dopo che questa opzione è stata impostata, non può essere annullata.

DEBUG_ENGOPT_KD_QUIET_MODE Attivare la modalità tranquilla. Per altre informazioni, vedere sq (Impostazione modalità di silenzio).
DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT Disabilita il supporto del motore del debugger per il codice gestito. Se il supporto per il codice gestito è già in uso, questa opzione non ha alcun effetto.
DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD Il debugger non carica i simboli per i moduli caricati mentre questo flag è impostato.
DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS Impedisce qualsiasi comando che causerebbe l'esecuzione della destinazione.
DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING Impedisce il mapping dei file di immagine dal disco. Ad esempio, questa opzione impedisce il mapping delle immagini per il contenuto della memoria durante il debug di file minidump. Questa opzione non influisce sui mapping esistenti; influisce solo sui tentativi successivi di mappare i file di immagine.
DEBUG_ENGOPT_PREFER_DML Il debugger esegue versioni avanzate di DML di comandi e operazioni per impostazione predefinita.
DEBUG_ENGOPT_DISABLESQM Disabilita il caricamento dei dati delle metriche qualità software (SQ).

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (includere Dbgeng.h)

Vedi anche

AddEngineOptions

GetEngineOptions

Idebugcontrol

IDebugControl2

IDebugControl3

RemoveEngineOptions