r (registri)

Il comando r visualizza o modifica registri, registri a virgola mobile, flag, pseudoregistri e alias a nome fisso.

Modalità utente

[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ] 
r.

Modalità kernel

[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.

Filo
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 dei thread. È possibile specificare thread solo in modalità utente.

M Maschera
Specifica la maschera da utilizzare quando il debugger visualizza i registri. "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. "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 integer.

Okay
Visualizzare i registri dei predicati opmask AVX-512 (K0-K7).

?
(solo assegnazione pseudoregistra) Fa sì che lo pseudoregistro acquisisca informazioni tipate. Qualsiasi tipo è consentito. Per altre informazioni sulla sintassi r?, vedere Debugger Command Program Examples.For more information about the r? syntax, see Debugger Command Program Examples.

Registro
Specifica l'alias register, flag, pseudo-register o fixed-name da visualizzare o modificare. Non è necessario precedere questo parametro con il segno (@) . Per altre informazioni sulla sintassi, vedere Register Syntax.For more information about the syntax, see Register Syntax.

Num
Specifica il numero di elementi da visualizzare. Se si omette questo parametro ma si include Type, viene visualizzata la lunghezza completa del registro.

Digitare
Specifica il formato dei 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.

Type Formato di visualizzazione

Ib

Byte firmato

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

A virgola mobile a 32 bit

g

Virgola mobile a 64 bit

Valore
Specifica il valore da assegnare al registro. Per altre informazioni sulla sintassi, vedere Sintassi delle espressioni numeriche.

.
Visualizza i registri utilizzati nell'istruzione corrente. Se non vengono utilizzati registri, non viene visualizzato alcun output.

Ambiente

Articolo Descrizione
Modalità Modalità utente, modalità kernel
Target Live, crash dump
Piattaforme Tutte le date

Informazioni aggiuntive

Per altre informazioni sul contesto di registrazione e altre impostazioni di contesto, vedere Modifica dei contesti.

Osservazioni:

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 in modo da contenere il valore. Se la modalità non interattiva è attiva, è possibile omettere il segno di uguale. È possibile attivare la modalità non interattiva usando il comando sq (Imposta modalità non interattiva). In modalità kernel, è anche possibile attivare la modalità non interattiva 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 di processi e thread.

In modalità kernel, il comando r visualizza i registri associati al contesto del registro corrente. È possibile impostare il contesto del registro in modo che corrisponda a un thread, un record di contesto o un frame trap specifico. Vengono visualizzati solo i registri più importanti per il contesto di registro specificato e non è possibile modificarne i valori. Per altre informazioni sul contesto di registrazione, vedere Registrare il contesto.

Quando si specifica un registro a virgola mobile in base al nome, l'opzione F non è obbligatoria. 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 integer di base. L'impostazione di uno o entrambi questi bit ha lo stesso effetto.

2

0x4

Visualizza i registri a virgola mobile.

3

0x8

Visualizza i registri dei segmenti.

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 i registri dello stato del descrittore e dell'attività.

9

0x200

Visualizza i registri AVX YMM in virgola mobile.

10

0x400

Visualizza i registri AVX YMM in numeri interi decimali.

11

0x800

Visualizza i registri AVX XMM in numeri interi decimali.

Gli esempi di codice seguenti illustrano 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 il thread 2.

0:000> ~2 r 

In modalità utente, il comando seguente visualizza tutti i registri eax associati a tutti i thread (nell'ordine dell'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 (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 e precisione doppia.

0:000> r xmm0:16ub, xmm1:d 

Se la sintassi corrente è C++, è necessario precedere i registri da un segno (@). Pertanto, è 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 con nome fisso. Questi alias non sono registri o pseudoregistri, anche se sono associati al comando r . Per altre informazioni su questi alias, vedere Uso degli alias.

Di seguito è riportato 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