[Lldb-commits] [lldb] [lldb][elf-core][ARM] Add support for VFP registers (PR #155956)
Igor Kudrin via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 29 18:58:50 PDT 2025
================
@@ -688,6 +688,27 @@ def test_arm_core(self):
values["lr"] = "0x0000000e"
values["pc"] = "0x0000000f"
values["cpsr"] = "0x00000010"
+ for i in range(32):
+ values["s" + str(i)] = str(i)
+ values["fpscr"] = "0x12345678"
+ values["d0"] = "0.0078125"
+ values["d1"] = "32.000007629394531"
+ values["d2"] = "2048.0004920959473"
+ values["d3"] = "32768.007904052734"
+ values["d4"] = "262144.0634765625"
+ values["d5"] = "1048576.2543945313"
+ values["d6"] = "4194305.01953125"
+ values["d7"] = "16777220.0859375"
+ values["d8"] = "50331656.1875"
+ values["d9"] = "100663312.390625"
+ values["d10"] = "201326624.8125"
+ values["d11"] = "402653249.6875"
+ values["d12"] = "805306499.5"
+ values["d13"] = "1610612999.25"
+ values["d14"] = "3221225999"
+ values["d15"] = "6442451999"
+ for i in range(16, 32):
+ values["d" + str(i)] = str(i)
----------------
igorkudrin wrote:
> How were these generated, using one of the existing programs in `lldb/test/API/functionalities/postmortem/elf-core/`?
Unfortunately, not. I started with `main_fpr.c`, but, since the float variables are only defined there but not used, the VFP registers remained empty. So, I took another program to have some registers filled and checked that the updated lldb shows the correct register values for the core dump file.
Then, `linux-arm.core` is obviously created artificially, and is not dumped from any real program. Thus, I followed the example and just manually added another note record using a hex editor. I started from a note record from a real core dump file, but updated the values so that each register was filled.
> Why do we have specific values for d0-15 but not for 16 to 31? I think it's something to do with how the registers overlap in hardware but I've forgotten the details.
You are right, each of d0-15 registers overlaps two of s0-31 registers.
https://github.com/llvm/llvm-project/pull/155956
More information about the lldb-commits
mailing list