Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I simboli consentono di modificare direttamente i token usati dal programma sottoposto a debug. Ad esempio, è possibile impostare un punto di interruzione nella funzione main con il comando bp main oppure visualizzare la variabile Integer MyInt con il comando dd MyInt L1.
In molti casi, i simboli possono essere usati come parametri nei comandi del debugger. Questa opzione è supportata per la maggior parte dei parametri numerici ed è supportata anche in alcuni parametri di testo. Oltre alle regole generali per la sintassi dei simboli, esistono anche regole di sintassi dei simboli che si applicano in ognuno di questi casi.
Regole generali per la sintassi dei simboli
Un nome di simbolo è costituito da uno o più caratteri, ma inizia sempre con una lettera, un carattere di sottolineatura (_), un punto interrogativo (?) o un segno di dollaro ($).
Un nome di simbolo può essere qualificato da un nome di modulo. Un punto esclamativo (!) separa il nome del modulo dal simbolo (ad esempio , mymodule!main). Se non viene usato alcun nome di modulo, il simbolo può comunque essere preceduto da un punto esclamativo. L'uso di un punto esclamativo senza nome di modulo può essere particolarmente utile, anche per le variabili locali, per indicare a un comando del debugger che un parametro è un nome e non un numero esadecimale. Ad esempio, la variabile fade verrà letta dal comando dt (Tipo di visualizzazione) come indirizzo, a meno che non sia preceduta da un punto esclamativo o che l'opzione -n venga utilizzata. Tuttavia, per specificare che un simbolo è locale, precederlo con un segno di dollaro ( $ ) e un punto esclamativo ( ! ), come in $!lime.
I nomi dei simboli sono completamente insensibili alle maiuscole. Ciò significa che la presenza di un myInt e di un MyInt nel programma non verrà compresa correttamente dai debugger; qualsiasi comando che fa riferimento a uno di questi può accedere all'altro, indipendentemente dal modo in cui il comando è in maiuscolo.
Sintassi dei simboli nelle espressioni numeriche
Il debugger comprende due tipi diversi di espressioni: espressioni Microsoft Macro Assembler (MASM) ed espressioni C++. Per quanto riguarda i simboli, queste due forme di sintassi differiscono come segue:
Nelle espressioni MASM ogni simbolo viene interpretato come indirizzo. A seconda del simbolo a cui fa riferimento il simbolo, si tratta dell'indirizzo di una variabile globale, di una variabile locale, di una funzione, di un segmento, di un modulo o di qualsiasi altra etichetta riconosciuta.
Nelle espressioni C++ ogni simbolo viene interpretato in base al tipo. A seconda di ciò che fa riferimento al simbolo, può essere interpretato come un numero intero, una struttura di dati, un puntatore a funzione o qualsiasi altro tipo di dati. Un simbolo che non corrisponde a un tipo di dati C++ (ad esempio un nome di modulo non modificato) genererà un errore di sintassi.
Per una spiegazione di quando e come usare ogni tipo di sintassi, vedere Valutazione di espressioni.
Se si usa la sintassi dell'espressione MASM, qualsiasi simbolo che può essere interpretato come numero esadecimale o come registro (ad esempio, BadFeed, ebX) deve essere sempre preceduto da un punto esclamativo. In questo modo, il debugger lo riconosce come simbolo.
Il comando ss (Set Symbol Suffix) può essere usato per impostare il suffisso del simbolo. Ciò indica al debugger di aggiungere automaticamente "A" o "W" a qualsiasi nome di simbolo che non è in grado di trovare in caso contrario.
Molte routine Win32 esistono sia nelle versioni ASCII che Unicode. Queste routine spesso hanno un "A" o "W" accodato rispettivamente alla fine dei nomi. L'uso di un suffisso di simboli faciliterà il debugger nella ricerca di questi simboli.
La corrispondenza dei suffissi non è attiva per impostazione predefinita.
Sintassi dei simboli nelle espressioni di testo
I simboli possono essere usati nei parametri di testo di alcuni comandi, ad esempio bm (Imposta punto di interruzione) e x (Esamina simboli).
Questi parametri di testo supportano un'ampia gamma di caratteri jolly e identificatori. Per informazioni dettagliate, vedere la Sintassi per stringa con caratteri jolly. Oltre ai caratteri jolly per stringhe standard, un'espressione di testo usata per specificare un simbolo può essere preceduta da un carattere di sottolineatura iniziale. Quando si abbina questo a un simbolo, il debugger lo considererà come qualsiasi quantità di trattini bassi, anche zero.
Il suffisso del simbolo non viene usato quando i simboli corrispondono nelle espressioni di testo.