问题描述
我在指令 vmovdqu (%rsi),%xmm2
处有一个程序的核心转储(商业、封闭源代码,不是我写的),我想使用 info regs
检查 gdb 中的寄存器值。
令人惊讶的是,cpu(AMD EPYC 7401P 24 核处理器)似乎有 ymm
,但没有 xmm
寄存器。
我不是 x86-64 汇编专家,但我对 x86 相当了解。
谁能解释一下? Gdb 版本为 10.1。
这是寄存器转储的一个例子(只是开始):
gdb) info registers all
rax 0x0 0
rbx 0x104c400 17089536
rcx 0x20 32
rdx 0x35 53
rsi 0x100000000a0 1099511627936
rdi 0x104c400 17089536
rbp 0x100000000a0 0x100000000a0
rsp 0x7ffcc68b0fa8 0x7ffcc68b0fa8
r8 0xffffffff 4294967295
r9 0xffffffff 4294967295
r10 0x5ab 1451
r11 0x35 53
r12 0x100000000a0 1099511627936
r13 0x7ffcc68b2110 140723639492880
r14 0x0 0
r15 0x0 0
rip 0x7f877a1dc86b 0x7f877a1dc86b <__strncasecmp_l_avx+91>
eflags 0x10283 [ CF SF IF RF ]
cs 0xe033 57395
ss 0xe02b 57387
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 0 (raw 0x00000000000000000000)
st7 0 (raw 0x00000000000000000000)
fctrl 0x37f 895
fstat 0x0 0
ftag 0xffff 65535
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
ymm0 {
v16_bfloat16 = {0x0,0x0,0x0},v8_float = {0x0,0xffffffff,v4_double = {0x0,0x7fffffffffffffff,v32_int8 = {0x0 <repeats 14 times>,0xff,0x0 <repeats 16 times>},v16_int16 = {0x0,0xffff,v8_int32 = {0x0,0xffff0000,v4_int64 = {0x0,0xffff000000000000,v2_int128 = {0xffff0000000000000000000000000000,0x0}
}
ymm1 {
v16_bfloat16 = {0xffff,v8_float = {0xffffffff,v4_double = {0x7fffffffffffffff,v32_int8 = {0x2f,0x65,0x74,0x63,0x2f,0x6f,0x70,0x6d,0x6e,0x69,0x6c,v16_int16 = {0x652f,0x6374,0x6f2f,0x7470,0x6e6d,0x2f69,0x6c63,v8_int32 = {0x6374652f,0x74706f2f,0x6e6d6f2f,0x6c632f69,v4_int64 = {0x74706f2f6374652f,0x6c632f696e6d6f2f,v2_int128 = {0x6c632f696e6d6f2f74706f2f6374652f,0x0}
}
ymm2 {
v16_bfloat16 = {0x0,v32_int8 = {0x0,0xff <repeats 13 times>,0xff00,v8_int32 = {0xff000000,v4_int64 = {0xffffffffff000000,0xffffffffffffffff,v2_int128 = {0xffffffffffffffffffffffffff000000,0x0}
}
ymm3 {
v16_bfloat16 = {0x0,0x0 <repeats 17 times>},0xff0000,0xff000000000000,v2_int128 = {0xff0000000000000000000000000000,0x0}
}
...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)