gdb:打印 AArch64 高级 SIMD 矢量寄存器(有可能吗?)

A23*_*577 5 assembly gcc gdb arm arm64

我正在尝试在我的汇编代码中进行调试,以检查高级 SIMD 向量寄存器中的值。为此,我运行 gdb 并在我的指令中设置一个断点,layout asm使用si. 然而,当我达到我想要的指令时,v16例如p没有打印这个寄存器中的值,它给了我一个错误,如下所示:

       ?0x4009d0 <Montmul512+80>        umull2 v16.2d, v15.4s, v7.s[3]                                                                         ?
      >?0x4009d4 <Montmul512+84>        umull2 v17.2d, v13.4s, v7.s[3]                                                                         ?
       ?0x4009d8 <Montmul512+88>        umull2 v18.2d, v14.4s, v7.s[3]                                                                         ?
       ?0x4009dc <Montmul512+92>        umull2 v19.2d, v12.4s, v7.s[3]                                                                         ?
       ?0x4009e0 <Montmul512+96>        umull  v20.2d, v15.2s, v7.s[3]                                                                         ?
       ?0x4009e4 <Montmul512+100>       umull  v21.2d, v13.2s, v7.s[3]                                                                         ?
       ?0x4009e8 <Montmul512+104>       umull  v22.2d, v14.2s, v7.s[3]                                                                         ?
       ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
    (gdb) print v16
    print v16
    No symbol "v16" in current context.
Run Code Online (Sandbox Code Playgroud)

我没有任何调试汇编代码的经验,所以也许这个问题对很多人来说似乎很简单。

Jam*_*lgh 3

尝试info vector所有高级 SIMD 寄存器(以各种布局打印),或info all-registers v16仅尝试 v16 的内容。