Condividi tramite


Uso dei simboli

Per una panoramica dei simboli, tra cui l'uso di file di simboli e server di simboli, vedere Simboli.

Nomi e posizioni dei simboli

Per trovare la posizione di un simbolo in base al nome, usare GetOffsetByName. Per informazioni dettagliate sulla sintassi usata per specificare i nomi dei simboli, vedere sintassi dei simboli e corrispondenza dei simboli.

Se il nome esatto di un simbolo non è noto o più simboli hanno lo stesso nome, StartSymbolMatch inizierà una ricerca di simboli i cui nomi corrispondono a un determinato criterio. Per informazioni dettagliate sulla sintassi, vedere Sintassi stringhe con caratteri jolly.

Per trovare il nome di un simbolo in base alla relativa posizione, usare GetNameByOffset. Per trovare i nomi dei simboli in un modulo vicino a una determinata posizione, usare GetNearNamebyOffset.

Nota Quando possibile, qualificare il simbolo con il nome del modulo, ad esempio mymodule!main. In caso contrario, se il simbolo non esiste (ad esempio, a causa di un errore tipografico) il motore dovrà caricare e cercare i simboli per ogni modulo; questo può essere un processo lento, soprattutto per il debug in modalità kernel. Se il nome del simbolo è stato qualificato con un nome di modulo, il motore dovrà cercare solo i simboli per tale modulo.

Un simbolo viene identificato in modo univoco usando la struttura DEBUG_MODULE_AND_ID. Questa struttura viene restituita dai metodi GetSymbolEntriesByName e GetSymbolEntriesByOffset, che cercano i simboli in base rispettivamente al nome e alla posizione.

Il metodo GetSymbolEntryInformation restituisce una descrizione di un simbolo usando la struttura DEBUG_SYMBOL_ENTRY .

Per trovare l'offset di un campo all'interno di una struttura, usare GetFieldOffset. Per trovare il nome di un campo in base all'indice all'interno di una struttura, usare GetFieldName. Per trovare il nome di una costante di enumerazione in base al relativo valore, usare GetConstantName.

Il metodo GetSymbolInformation può eseguire diverse richieste di informazioni sui simboli.

Opzioni simbolo

Un certo numero di opzioni controlla il modo in cui i simboli vengono caricati e scaricati. Per una descrizione di queste opzioni, vedere Impostazione delle opzioni dei simboli.

Le opzioni dei simboli possono essere attivate usando AddSymbolOptions e disattivate tramite RemoveSymbolOptions.

GetSymbolOptions restituisce le opzioni dei simboli correnti. Per impostare tutte le opzioni dei simboli contemporaneamente, usare SetSymbolOptions.

Ricaricamento dei simboli

Dopo il caricamento dei file di simboli, il motore archivia le informazioni sui simboli in una cache interna. Per scaricare questa cache, usare Ricarica. Questi simboli dovranno essere caricati nuovamente ora o in un secondo momento.

Simboli sintetici

I simboli sintetici sono un modo per etichettare un indirizzo arbitrario per un semplice riferimento. I simboli sintetici possono essere creati in qualsiasi modulo esistente. Il metodo AddSyntheticSymbol crea un nuovo simbolo sintetico. I simboli sintetici possono essere rimossi usando RemoveSyntheticSymbol. Ricaricando i simboli per il modulo vengono eliminati tutti i simboli sintetici associati a tale modulo.

Percorso dei simboli

Per aggiungere una directory o un server di simboli al percorso del simbolo, utilizzare il metodo AppendSymbolPath. L'intero percorso del simbolo viene restituito da GetSymbolPath e può essere modificato tramite SetSymbolPath.