r (Registri)
Il comando r visualizza o modifica i registri, i registri a virgola mobile, i flag, i pseudoregistri e gli alias di nome fisso.
User-Mode
[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Kernel-Mode
[Processor] r[M Mask|F|X|Y|YI|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Parametri
Processore
Specifica il processore da cui vengono letti i registri. Il valore predefinito è zero. Se si specifica Processore, non è possibile includere i registri Register parameter-all vengono visualizzati. Per altre informazioni sulla sintassi, vedere Sintassi multiprocessore. È possibile specificare processori solo in modalità kernel.
Thread
Specifica il thread da cui vengono letti i registri. Se non si specifica un thread, viene usato il thread corrente. Per altre informazioni sulla sintassi, vedere Sintassi thread. È possibile specificare thread solo in modalità utente.
Maschera M
Specifica la maschera da usare quando il debugger visualizza i registri. Il valore "M" deve essere una lettera maiuscola. Mask è una somma di bit che indicano qualcosa sulla visualizzazione del registro. Il significato dei bit dipende dal processore e dalla modalità (vedere le tabelle nella sezione Osservazioni seguenti per altre informazioni). Se si omette M, viene usata la maschera predefinita. È possibile impostare o visualizzare la maschera predefinita usando il comando Rm (Register Mask).
F
Visualizza i registri a virgola mobile. Il valore "F" deve essere una lettera maiuscola. Questa opzione equivale a M 0x4.
X
Visualizza i registri SSE XMM. Questa opzione equivale a M 0x40.
Y
Visualizza i registri AVX YMM. Questa opzione equivale a M 0x200.
YI
Visualizza i registri interi AVX YMM. Questa opzione equivale a M 0x400.
Z
Visualizza i registri AVX-512 YMM (zmm0-zmm31) in formato a virgola mobile.
ZI
Visualizza i registri AVX-512 YMM (zmm0-zmm31) in formato intero.
K
Visualizzare i registri predicati opmask avX-512 (K0-K7).
?
(solo assegnazione di pseudoregistro) Determina l'acquisizione di informazioni tipite da parte del pseudoregistrato. Qualsiasi tipo è consentito. Per altre informazioni sulla sintassi r? vedere Esempi di programma di comando debugger.
Registro
Specifica l'alias di registro, flag, pseudoregistro o nome fisso da visualizzare o modificare. Non è necessario precedere questo parametro con il segno (@). Per altre informazioni sulla sintassi, vedere Registrare la sintassi.
Num
Specifica il numero di elementi da visualizzare. Se si omette questo parametro ma si include Type, viene visualizzata la lunghezza del registro completo.
Digitare
Specifica il formato dati in cui visualizzare ogni elemento del registro. È possibile usare Type solo con registri vettoriali a 64 bit e a 128 bit. È possibile specificare più tipi.
È possibile specificare uno o più dei valori seguenti.
Tipo | Formato di visualizzazione |
---|---|
Ib |
Signed Byte |
Ub |
Byte senza segno |
Iw |
Parola firmata |
Uw |
Parola senza segno |
id |
DWORD firmato |
Ud |
DWORD senza segno |
Iq |
Parola quad firmata |
Uq |
Quad-word senza segno |
f |
Virgola mobile a 32 bit |
d |
Virgola mobile a 64 bit |
Valore
Specifica il valore da assegnare al registro. Per altre informazioni sulla sintassi, vedere Sintassi dell'espressione numerica.
.
Visualizza i registri usati nell'istruzione corrente. Se non vengono usati registri, non viene visualizzato alcun output.
Ambiente
Elemento | Descrizione |
---|---|
Modalità | Modalità utente, modalità kernel |
Targets | Dump live, arresto anomalo |
Piattaforme | Tutti |
Informazioni aggiuntive
Per altre informazioni sul contesto di registrazione e altre impostazioni di contesto, vedere Modifica dei contesti.
Commenti
Se non si specifica Register, il comando r visualizza tutti i registri non a virgola mobile e il comando rF visualizza tutti i registri a virgola mobile. È possibile modificare questo comportamento usando il comando rm (Register Mask).
Se si specifica Register ma si omette il segno di uguale (=) e il parametro Value , il comando visualizza il valore corrente del registro.
Se si specifica Register e un segno di uguale (=) ma si omette Valore, il comando visualizza il valore corrente del registro e richiede un nuovo valore.
Se si specifica Register, il segno di uguale (=) e Value, il comando modifica il registro per contenere il valore. Se la modalità tranquilla è attiva, è possibile omettere il segno di uguale. È possibile attivare la modalità tranquilla usando il comando sq (Imposta modalità tranquilla). In modalità kernel è anche possibile attivare la modalità tranquilla usando la variabile di ambiente KDQUIET.
È possibile specificare più registri, separati da virgole.
In modalità utente, il comando r visualizza i registri associati al thread corrente. Per altre informazioni sui thread, vedere Controllo dei processi e dei thread.
In modalità kernel il comando r visualizza i registri associati al contesto di registrazione corrente. È possibile impostare il contesto di registrazione in modo che corrisponda a un thread, un record di contesto o un frame di trap specifico. Vengono visualizzati solo i registri più importanti per il contesto di registrazione specificato e non è possibile modificare i relativi valori. Per altre informazioni sul contesto di registrazione, vedere Registrare contesto.
Quando si specifica un registro a virgola mobile per nome, l'opzione F non è necessaria. Quando si specifica un singolo registro a virgola mobile, viene visualizzato il valore esadecimale non elaborato oltre al valore decimale.
I bit mask seguenti sono supportati per un processore basato su x86 o un processore basato su x64.
bit | Valore | Descrizione |
---|---|---|
0 1 | 0x1 0x2 | Visualizza i registri interi di base. L'impostazione di uno o entrambi i bit ha lo stesso effetto. |
2 |
0x4 |
Visualizza i registri a virgola mobile. |
3 |
0x8 |
Visualizza i registri del segmento. |
4 |
0x10 |
Visualizza i registri MMX. |
5 |
0x20 |
Visualizza i registri di debug. In modalità kernel, l'impostazione di questo bit visualizza anche il registro CR4. |
6 |
0x40 |
Visualizza i registri SSE XMM. |
7 |
0x80 |
(solo modalità kernel) Visualizza i registri di controllo, ad esempio CR0, CR2, CR3 e CR8. |
8 |
0x100 |
(solo modalità kernel) Visualizza il descrittore e i registri dello stato dell'attività. |
9 |
0x200 |
Visualizza i registri AVX YMM in virgola mobile. |
10 |
0x400 |
Visualizza i registri AVX YMM in interi decimali. |
11 |
0x800 |
Visualizza i registri AVX XMM in interi decimali. |
Gli esempi di codice seguenti mostrano i comandi r per un processore basato su x86.
In modalità kernel, il comando seguente mostra i registri per il processore 2.
1: kd> 2r
In modalità utente, il comando seguente mostra i registri per thread 2.
0:000> ~2 r
In modalità utente, il comando seguente visualizza tutti i registri eax associati a tutti i thread (nell'ordine di indice del thread).
0:000> ~* r eax
Il comando seguente imposta il registro eax per il thread corrente su 0x000000FF.
0:000> r eax=0x000000FF
Il comando seguente imposta il registro st0 su 1.234e+10 (il valore F è facoltativo).
0:000> rF st0=1.234e+10
Il comando seguente visualizza il flag zero.
0:000> r zf
Il comando seguente visualizza il registro xmm0 come 16 byte senza segno e quindi visualizza il contenuto completo del registro xmm1 in formato a virgola mobile a precisione doppia.
0:000> r xmm0:16ub, xmm1:d
Se la sintassi corrente è C++, è necessario precedere i registri da un segno (@). È quindi possibile usare il comando seguente per copiare il registro ebx nel registro eax .
0:000> r eax = @ebx
Il comando seguente visualizza gli pseudoregistri nello stesso modo in cui il comando r visualizza i registri.
0:000> r $teb
È anche possibile usare il comando r per creare alias di nome fisso. Questi alias non sono registri o pseudoregistri, anche se sono associati al comando r . Per altre informazioni su questi alias, vedere Uso di alias.
Ecco un esempio del comando r. in un processore basato su x86. L'ultima voce dello stack di chiamate precede il comando stesso.
01004af3 8bec mov ebp,esp
0:000> r.
ebp=0006ffc0 esp=0006ff7c
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per