Closed DavidSpickett closed 2 months ago
@llvm/issue-subscribers-lldb
Author: David Spickett (DavidSpickett)
Friendly neighborhood GDB maintainer points out that I need to use info all-registers
or info registers vector
and then I'd see them in the output.
Either way, GDB knows how to get the V register values.
GDB 12.1 (only version I checked) does not list the registers in
info registers
but it will let you read it individually:If I choose a CPU without SVE, the problem is fixed:
This is because QEMU does not send info about the floating point registers if SVE is enabled. On the grounds that we should know that we can just extract them from the bottom 128 bits of the SVE registers.
I might have argued that that's exactly what the XML is supposed to inform us about, but ok, that ship has sailed.
https://gitlab.com/qemu-project/qemu/-/blob/master/target/arm/gdbstub.c?ref_type=heads#L512
QEMU sends us XML like this:
The SVE contents are:
It does not include specific entries for
v0
and the other FPU registers.Clearly lldb knows there are 32 other registers (v0-31) that we expect to get, so some fallback code is being executed. It just doesn't know where to get the values from. We'll have to teach that to use the SVE values.