Opzioni simbolo

Sono disponibili diverse opzioni per controllare il modo in cui vengono caricati e usati i simboli. Queste opzioni possono essere impostate in diversi modi.

Nella tabella seguente sono elencate queste opzioni di simboli:

Contrassegno Nome opzione Impostazione predefinita nel debugger Impostazione predefinita in DBH

0x1

SYMOPT_CASE_INSENSITIVE

On

On

0x2

SYMOPT_UNDNAME

On

On

0x4

SYMOPT_DEFERRED_LOADS

Attivato

Disattivato

0x8

SYMOPT_NO_CPP

Off

Off

0x10

SYMOPT_LOAD_LINES

Disattivato in KD e CDB

Attivato in WinDbg

On

0x20

SYMOPT_OMAP_FIND_NEAREST

Attivato

Disattivato

0x40

SYMOPT_LOAD_ANYTHING

Off

Off

0x80

SYMOPT_IGNORE_CVREC

Off

Off

0x100

SYMOPT_NO_UNQUALIFIED_LOADS

Off

Off

0x200

SYMOPT_FAIL_CRITICAL_ERRORS

Attivato

Disattivato

0x400

SYMOPT_EXACT_SYMBOLS

Disattivato

Attivato

0x800

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

Disattivato

Attivato

0x1000

SYMOPT_IGNORE_NT_SYMPATH

Off

Off

0x2000

SYMOPT_INCLUDE_32BIT_MODULES

Off

Off

0x4000

SYMOPT_PUBLICS_ONLY

Off

Off

0x8000

SYMOPT_NO_PUBLICS

Off

Off

0x10000

SYMOPT_AUTO_PUBLICS

On

On

0x20000

SYMOPT_NO_IMAGE_SEARCH

Attivato

Disattivato

0x40000

SYMOPT_SECURE

Off

Off

0x80000

SYMOPT_NO_PROMPTS

Attivato in KD e CDB

Disattivato in WinDbg

Off

0x80000000

SYMOPT_DEBUG

Off

Off

Modifica delle impostazioni dell'opzione simbolo

Il comando .symopt (Imposta opzioni simbolo) può essere usato per modificare o visualizzare le impostazioni dell'opzione dei simboli. Inoltre, sono disponibili diversi parametri e comandi della riga di comando per modificare queste impostazioni; sono elencati nelle singole sezioni SYMOPT_XXX .

È anche possibile controllare tutte le impostazioni contemporaneamente con l'opzione della riga di comando-sflags. Questa opzione può essere seguita con un numero decimale o con un numero esadecimale preceduto da 0x. È consigliabile usare l'esadecimale, poiché i flag dei simboli sono allineati correttamente in questo modo. Prestare attenzione nell'uso di questo metodo, poiché imposta l'intero campo di bit e sostituirà tutte le impostazioni predefinite del gestore dei simboli. Ad esempio, -sflags 0x401 non solo attiva SYMOPT_EXACT_SYMBOLS e SYMOPT_CASE_INSENSITIVE, ma disattiva anche tutte le altre opzioni che normalmente sono attivate per impostazione predefinita!

Il valore predefinito per i bit di flag totali è 0x30237 in WinDbg, 0xB0227 in CDB e KD e 0x10C13 nello strumento DBH, quando questi programmi vengono avviati senza opzioni della riga di comando correlate ai simboli.

SYMOPT_CASE_INSENSITIVE

Questa opzione di simbolo determina la distinzione tra maiuscole e minuscole per tutte le ricerche dei nomi dei simboli.

Questa opzione è attivata per impostazione predefinita in tutti i debugger. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x1 o symopt-0x1.

Questa opzione è attivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +1 o symopt -1.

SYMOPT_UNDNAME

Questa opzione di simboli fa sì che i nomi dei simboli pubblici vengano annullati quando vengono visualizzati e che la ricerca dei nomi dei simboli ignori le decorazioni dei simboli. I nomi dei simboli privati non vengono mai decorati, indipendentemente dal fatto che questa opzione sia attiva. Per informazioni sulle decorazioni dei nomi dei simboli, vedere Simboli pubblici e privati.

Questa opzione è attivata per impostazione predefinita in tutti i debugger. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x2 o symopt-0x2.

Questa opzione è attivata per impostazione predefinita in DBH. È disattivato se viene usata l'opzione della riga di comando -d. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +2 o symopt -2.

SYMOPT_DEFERRED_LOADS

Questa opzione di simbolo è denominata caricamento posticipato di simboli o caricamento di simboli lazy. Quando è attiva, i simboli non vengono effettivamente caricati quando vengono caricati i moduli di destinazione. I simboli vengono invece caricati dal debugger in base alle esigenze. Per informazioni dettagliate, vedere Caricamento di simboli posticipati .

Questa opzione è attivata per impostazione predefinita in tutti i debugger. In CDB e KD l'opzione della riga di comando -s disattiva questa opzione. Può anche essere disattivato in CDB usando la variabile LazyLoad nel file tools.ini . Quando il debugger è in esecuzione, questa opzione può essere attivata o disattivata usando rispettivamente .symopt+0x4 o symopt-0x4.

Questa opzione è disattivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +4 o symopt -4.

SYMOPT_NO_CPP

Questa opzione di simbolo disattiva la conversione C++. Quando questa opzione di simbolo è impostata, :: viene sostituita da __ in tutti i simboli.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Può essere attivato usando l'opzione della riga di comando -snc. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x8 o symopt-0x8.

Questa opzione è disattivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +8 o symopt -8.

SYMOPT_LOAD_LINES

Questa opzione di simbolo consente di leggere le informazioni sul numero di riga dai file di origine. Questa opzione deve essere attivata per il corretto funzionamento del debug di origine.

In KD e CDB questa opzione è disattivata per impostazione predefinita; in WinDbg questa opzione è attivata per impostazione predefinita. In CDB e KD l'opzione della riga di comando -lines attiva questa opzione. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x10 o symopt-0x10. Può anche essere attivato e disattivato usando il comando .lines (Toggle Source Line Support).

Questa opzione è attivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +10 o symopt -10.

SYMOPT_OMAP_FIND_NEAREST

Quando il codice è stato ottimizzato e non è presente alcun simbolo nella posizione prevista, questa opzione determina l'uso del simbolo più vicino.

Questa opzione è attivata per impostazione predefinita in tutti i debugger. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x20 o symopt-0x20.

Questa opzione è attivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +20 o symopt -20.

SYMOPT_LOAD_ANYTHING

Questa opzione di simbolo riduce la selezione del gestore di simboli quando tenta di trovare una corrispondenza con i simboli.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x40 o symopt-0x40.

Questa opzione è disattivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +40 o symopt -40.

SYMOPT_IGNORE_CVREC

Questa opzione di simbolo fa sì che il gestore dei simboli ignori il record CV nell'intestazione dell'immagine caricata durante la ricerca di simboli.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Può essere attivata usando l'opzione della riga di comando -sicv. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x80 o symopt-0x80.

Questa opzione è disattivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +80 o symopt -80.

SYMOPT_NO_UNQUALIFIED_LOADS

Questa opzione di simbolo disabilita il caricamento automatico dei moduli del gestore dei simboli. Quando questa opzione è impostata e il debugger tenta di trovare una corrispondenza con un simbolo, cercherà solo i moduli già caricati.

Questa opzione può essere usata come difesa contro la digitazione errata di un nome di simbolo. In genere, un simbolo tipizzato in modo non digitato causerà la sospensione del debugger durante la ricerca in tutti i file di simboli scaricati. Quando questa opzione è attiva, nei moduli caricati non verrà trovato un simbolo non tipizzato e la ricerca verrà terminata.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Può essere attivato usando l'opzione della riga di comando -snul. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x100 o symopt-0x100.

Questa opzione è disattivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +100 o symopt -100.

SYMOPT_FAIL_CRITICAL_ERRORS

Questa opzione di simbolo causa l'eliminazione delle finestre di dialogo di errore di accesso ai file.

Se questa opzione è disattivata, vengono visualizzati errori di accesso ai file, ad esempio "unità non pronta", rilevati durante il caricamento dei simboli. Se questa opzione è attivata, queste caselle vengono eliminate e tutti gli errori di accesso ricevono una risposta di errore.

Questa opzione è attivata per impostazione predefinita in tutti i debugger. Può essere disattivata usando l'opzione della riga di comando -sdce. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x200 o symopt-0x200.

Questa opzione è disattivata per impostazione predefinita in DBH. Quando DBH è in esecuzione, può essere attivato o disattivato usando rispettivamente symopt +200 o symopt -200.

SYMOPT_EXACT_SYMBOLS

Questa opzione di simbolo fa sì che il debugger esegua una valutazione rigorosa di tutti i file di simboli.

Quando questa opzione è attivata, anche la minima discrepanza tra i file di simboli e le aspettative del gestore di simboli causerà l'ignorare i simboli.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Può essere attivata usando l'opzione della riga di comando -ses. Quando il debugger è in esecuzione, può essere attivato o disattivato usando rispettivamente .symopt+0x400 o symopt-0x400.

L'opzione della riga di comando -failinc attiva anche SYMOPT_EXACT_SYMBOLS. Inoltre, se si esegue il debug di un minidump in modalità utente o un minidump in modalità kernel, -failinc impedirà al debugger di caricare i moduli le cui immagini non possono essere mappate.

Questa opzione è attivata per impostazione predefinita in DBH. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +400 o symopt -400.

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

Questa opzione di simbolo consente a DbgHelp di leggere i simboli archiviati in un indirizzo assoluto in memoria. Questa opzione non è necessaria nella maggior parte dei casi.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Dopo aver eseguito il debugger, può essere attivato o disattivato usando rispettivamente .symopt+0x800 o .symopt-0x800 .

Questa opzione è attivata per impostazione predefinita in DBH. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +800 o symopt -800.

SYMOPT_IGNORE_NT_SYMPATH

Questa opzione di simbolo causa l'ignorare le impostazioni della variabile di ambiente per il percorso del simbolo e il percorso dell'immagine eseguibile.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Può essere attivato usando l'opzione della riga di comando -sins. Tuttavia, non può essere controllato da .symopt una volta che il debugger è in esecuzione, perché le variabili di ambiente vengono lette solo all'avvio.

Questa opzione è disattivata per impostazione predefinita in DBH e viene ignorata da DBH in tutti i casi.

SYMOPT_PUBLICS_ONLY

Questa opzione di simbolo causa l'ignorare i dati dei simboli privati di DbgHelp e cercare solo la tabella dei simboli pubblici per le informazioni sui simboli. Questo emula il comportamento di DbgHelp prima dell'aggiunta del supporto per questi tipi. vedere Simboli pubblici e privati.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Dopo aver eseguito il debugger, è possibile attivare o disattivare usando rispettivamente .symopt+0x4000 o .symopt-0x4000 .

Questa opzione è disattivata per impostazione predefinita in DBH. Viene attivato se viene usata l'opzione della riga di comando -d. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +4000 o symopt -4000.

SYMOPT_NO_PUBLICS

Questa opzione di simbolo impedisce a DbgHelp di cercare la tabella dei simboli pubblici. Ciò può rendere più veloce l'enumerazione dei simboli e la ricerca dei simboli. Se si è interessati esclusivamente alla velocità di ricerca, l'opzione SYMOPT_AUTO_PUBLICS è generalmente preferibile a questa. Per informazioni sulla tabella dei simboli pubblici, vedere Simboli pubblici e privati.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Dopo aver eseguito il debugger, può essere attivato o disattivato usando rispettivamente .symopt+0x8000 o .symopt-0x8000 .

Questa opzione è disattivata per impostazione predefinita in DBH. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +8000 o symopt -8000.

SYMOPT_AUTO_PUBLICS

Questa opzione di simbolo fa sì che DbgHelp cerchi la tabella dei simboli pubblici in un file con estensione pdb solo come ultima risorsa. Se vengono trovate corrispondenze durante la ricerca dei dati dei simboli privati, i simboli pubblici non verranno cercati. Questo migliora la velocità di ricerca dei simboli.

Questa opzione è attivata per impostazione predefinita in tutti i debugger. Può essere disattivato usando l'opzione della riga di comando -sup. Dopo aver eseguito il debugger, può essere attivato o disattivato usando rispettivamente .symopt+0x10000 o .symopt-0x10000 .

Questa opzione è attivata per impostazione predefinita in DBH. Viene disattivato se viene usata l'opzione della riga di comando -d. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +10000 o symopt -10000.

Questa opzione di simbolo impedisce a DbgHelp di cercare il disco per una copia dell'immagine quando vengono caricati i simboli.

Questa opzione è attivata per impostazione predefinita in tutti i debugger. Dopo aver eseguito il debugger, può essere attivato o disattivato usando rispettivamente .symopt+0x20000 o .symopt-0x20000 .

Questa opzione è disattivata per impostazione predefinita in DBH. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +20000 o symopt -20000.

SYMOPT_SECURE

(solo modalità kernel) Questa opzione di simbolo indica se la modalità sicura è attiva.

La modalità sicura è disattivata per impostazione predefinita in tutti i debugger. Può essere attivato usando l'opzione della riga di comando -secure. Se il debugger è in esecuzione, è in modalità inattiva e non è stato stabilito alcun server di debug, è possibile attivare la modalità sicura usando .symopt+0x40000 o .secure (Attiva modalità sicura).

Questa opzione è disattivata per impostazione predefinita in DBH. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +40000 o symopt -40000.

La modalità sicura non può mai essere disattivata una volta attivata.

SYMOPT_NO_PROMPTS

Questa opzione di simbolo elimina le finestre di dialogo di autenticazione dal server proxy. Ciò può causare l'impossibilità di accedere a un archivio simboli su Internet.

Per informazioni dettagliate, vedere Firewall e server proxy.

In KD e CDB, questa opzione è attiva per impostazione predefinita; in WinDbg questa opzione è disattivata per impostazione predefinita. Dopo aver eseguito il debugger, può essere attivato o disattivato usando rispettivamente il comando .symopt+0x80000 o .symopt-0x80000, seguito dal comando reload (Reload Module). Può anche essere attivato e disattivato usando i comandi di estensione !sym prompts off e !sym prompts, seguiti dal comando .reload Module( Reload Module).

Questa opzione è disattivata per impostazione predefinita in DBH. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +80000 o symopt -80000.

-SYMOPT_DEBUG

Questa opzione di simbolo attiva il caricamento di simboli rumorosi. In questo modo il debugger indica al debugger di visualizzare informazioni sulla relativa ricerca di simboli.

Il nome di ogni file di simboli verrà visualizzato durante il caricamento. Se il debugger non è in grado di caricare un file di simboli, verrà visualizzato un messaggio di errore. I messaggi di errore per i file con estensione pdb verranno visualizzati nel testo. I messaggi di errore per i file dbg saranno sotto forma di codice di errore; questi codici vengono illustrati nel file winerror.h.

Se un file di immagine viene caricato esclusivamente per recuperare le informazioni sull'intestazione simbolica, verrà visualizzato anche questo file.

Questa opzione è disattivata per impostazione predefinita in tutti i debugger. Può essere attivato usando l'opzione della riga di comando -n. Dopo aver eseguito il debugger, può essere attivato o disattivato usando rispettivamente .symopt+0x80000000 o .symopt-0x80000000 . Può anche essere attivato e disattivato usando i comandi !sym rumoroso e !sym quiet extension.

Nota Questa opzione non deve essere confusa con il caricamento di origine rumoroso, controllata dal comando srcnoisy (Caricamento origine rumorosa).

Questa opzione è disattivata per impostazione predefinita in DBH. Può essere attivato usando l'opzione della riga di comando -n. Dopo aver eseguito DBH, può essere attivato o disattivato usando rispettivamente symopt +800000000 o symopt -80000000. Può anche essere attivato e disattivato usando i comandi verbosi e dettagliati.