我正在嘗試在我的彙編代碼內部進行調試,以檢查高級SIMD矢量寄存器中的值。爲此,我運行gdb並在我的指令中設置一個斷點,運行layout asm
並使用si
按照我的指示執行。然而,當我達到我想要的指令,對v16
例如,沒有打印該寄存器中的值,它給了我這樣的錯誤,如下所示:gdb:打印AArch64高級SIMD矢量寄存器(有可能嗎?)
│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.
我沒有任何左右經驗調試彙編代碼,所以也許這個問題對許多人來說似乎很簡單。任何幫助將不勝感激
通常寄存器名稱以gdb中的'$'開頭。我不知道AArch64,但嘗試'p $ v16'。或者看看'info regs'。 –