Condividi tramite


Metodo IDebugControl3::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 altri dettagli, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.

Commenti

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

Dopo aver modificato le opzioni del motore, il motore invia una notifica all'oggetto callback dell'evento di ogni client passando il flag 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 di debugger.
DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS Disabilitare il controllo della versione per le estensioni. In questo modo viene eliminata la chiamata del motore del debugger a CheckVersion.
DEBUG_ENGOPT_ALLOW_NETWORK_PATHS Le condivisioni di rete possono essere usate per caricare simboli ed estensioni. Questa opzione impedisce al motore di impedire i percorsi di rete durante il debug di alcuni processi di sistema e deve essere usata 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 ed 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 first-chance previste generate dal caricatore in determinate versioni di Windows.

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

DEBUG_ENGOPT_INITIAL_BREAK Eseguire l'interruzione nel debugger in corrispondenza dell'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 in corrispondenza dell'evento finale della destinazione. In una destinazione in modalità utente attiva, 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 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 attiva, il motore esegue operazioni aggiuntive durante l'inserimento e la rimozione di punti di interruzione per garantire che tutti i thread nella destinazione abbiano sempre uno stato coerente del punto di interruzione.

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 aver impostato questa opzione, non può essere annullata.

DEBUG_ENGOPT_KD_QUIET_MODE Attivare la modalità non interattiva. Per altre informazioni, vedere sq (Set Quiet Mode).
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 l'esecuzione dei comandi che causano l'esecuzione della destinazione.
DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING Non consente il mapping dei file di immagine dal disco. Ad esempio, questa opzione non consente il mapping delle immagini per il contenuto di memoria durante il debug di file minidump. Questa opzione non influisce sui mapping esistenti; influisce solo sui tentativi successivi di eseguire il mapping dei file di immagine.
DEBUG_ENGOPT_PREFER_DML Il debugger esegue versioni avanzate DML di comandi e operazioni per impostazione predefinita.
DEBUG_ENGOPT_DISABLESQM Disabilita il caricamento dei dati DELLA metrica qualità software (SQ).

Requisiti

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

Vedi anche

AddEngineOptions

GetEngineOptions

Idebugcontrol

IDebugControl2

IDebugControl3

RemoveEngineOptions