Solaris 动态跟踪指南

uregs[] 数组

通过 uregs[] 数组,可以访问各个用户寄存器。下表列出了与每个支持的 Solaris 系统体系结构对应的 uregs[] 数组索引。

表 33–1 SPARC uregs[] 常量

常量 

寄存器 

R_G0..R_G7

%g0..%g7 全局寄存器

R_O0..R_O7

%o0..%o7 输出寄存器

R_L0..R_L7

%l0..%l7 本地寄存器

R_I0..R_I7

%i0..%i7 输入寄存器

R_CCR

%ccr 条件代码寄存器

R_PC

%pc 程序计数器

R_NPC

%npc 下一个程序计数器

R_Y

%y 乘/除寄存器

R_ASI

%asi 地址空间标识符寄存器

R_FPRS

%fprs 浮点寄存器状态

表 33–2 x86 uregs[] 常量

常量 

寄存器 

R_CS

%cs

R_GS

%gs

R_ES

%es

R_DS

%ds

R_EDI

%edi

R_ESI

%esi

R_EBP

%ebp

R_EAX

%eax

R_ESP

%esp

R_EAX

%eax

R_EBX

%ebx

R_ECX

%ecx

R_EDX

%edx

R_TRAPNO

%trapno

R_ERR

%err

R_EIP

%eip

R_CS

%cs

R_ERR

%err

R_EFL

%efl

R_UESP

%uesp

R_SS

%ss

在 AMD64 平台上,uregs 数组的内容与其在 x86 平台上的内容相同,另外还包括下表中列出的附加元素:

表 33–3 amd64 uregs[] 常量

常量 

寄存器 

R_RSP

%rsp

R_RFL

%rfl

R_RIP

%rip

R_RAX

%rax

R_RCX

%rcx

R_RDX

%rdx

R_RBX

%rbx

R_RBP

%rbp

R_RSI

%rsi

R_RDI

%rdi

R_R8

%r8

R_R9

%r9

R_R10

%r10

R_R11

%r11

R_R12

%r12

R_R13

%r13

R_R14

%r14

R_R15

%r15

下表中列出的别名可用于所有平台:

表 33–4 公用的 uregs[] 常量

常量 

寄存器 

R_PC

程序计数器寄存器 

R_SP

栈指针寄存器 

R_R0

第一个返回码 

R_R1

第二个返回码