diff --git a/lldb/examples/python/templates/scripted_process.py b/lldb/examples/python/templates/scripted_process.py index 24aa9818bb989..b6f2d18971e72 100644 --- a/lldb/examples/python/templates/scripted_process.py +++ b/lldb/examples/python/templates/scripted_process.py @@ -360,6 +360,9 @@ def get_register_info(self): elif "arm64" in self.arch or self.arch == "aarch64": self.register_info["sets"] = ["General Purpose Registers"] self.register_info["registers"] = ARM64_GPR + elif "arm" in self.arch or "thumb" in self.arch: + self.register_info["sets"] = ["General Purpose Registers"] + self.register_info["registers"] = ARM32_GPR else: raise ValueError("Unknown architecture", self.arch) return self.register_info @@ -520,6 +523,9 @@ def get_register_info(self): elif "arm64" in self.arch or self.arch == "aarch64": self.register_info["sets"] = ["General Purpose Registers"] self.register_info["registers"] = ARM64_GPR + elif "arm" in self.arch or "thumb" in self.arch: + self.register_info["sets"] = ["General Purpose Registers"] + self.register_info["registers"] = ARM32_GPR else: raise ValueError("Unknown architecture", self.arch) return self.register_info @@ -688,11 +694,10 @@ def get_register_context(self): return struct.pack(f"{len(self.register_ctx)}Q", *self.register_ctx.values()) - -ARM64_GPR = [ +ARM32_GPR = [ { - "name": "x0", - "bitsize": 64, + "name": "r0", + "bitsize": 32, "offset": 0, "encoding": "uint", "format": "hex", @@ -703,9 +708,9 @@ def get_register_context(self): "alt-name": "arg0", }, { - "name": "x1", - "bitsize": 64, - "offset": 8, + "name": "r1", + "bitsize": 32, + "offset": 4, "encoding": "uint", "format": "hex", "set": 0, @@ -715,9 +720,9 @@ def get_register_context(self): "alt-name": "arg1", }, { - "name": "x2", - "bitsize": 64, - "offset": 16, + "name": "r2", + "bitsize": 32, + "offset": 8, "encoding": "uint", "format": "hex", "set": 0, @@ -727,9 +732,9 @@ def get_register_context(self): "alt-name": "arg2", }, { - "name": "x3", - "bitsize": 64, - "offset": 24, + "name": "r3", + "bitsize": 32, + "offset": 12, "encoding": "uint", "format": "hex", "set": 0, @@ -739,444 +744,69 @@ def get_register_context(self): "alt-name": "arg3", }, { - "name": "x4", - "bitsize": 64, - "offset": 32, + "name": "r4", + "bitsize": 32, + "offset": 16, "encoding": "uint", "format": "hex", "set": 0, "gcc": 4, "dwarf": 4, - "generic": "arg4", - "alt-name": "arg4", }, { - "name": "x5", - "bitsize": 64, - "offset": 40, + "name": "r5", + "bitsize": 32, + "offset": 20, "encoding": "uint", "format": "hex", "set": 0, "gcc": 5, "dwarf": 5, - "generic": "arg5", - "alt-name": "arg5", - }, - { - "name": "x6", - "bitsize": 64, - "offset": 48, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 6, - "dwarf": 6, - "generic": "arg6", - "alt-name": "arg6", }, { - "name": "x7", - "bitsize": 64, - "offset": 56, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 7, - "dwarf": 7, - "generic": "arg7", - "alt-name": "arg7", - }, - { - "name": "x8", - "bitsize": 64, - "offset": 64, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 8, - "dwarf": 8, - }, - { - "name": "x9", - "bitsize": 64, - "offset": 72, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 9, - "dwarf": 9, - }, - { - "name": "x10", - "bitsize": 64, - "offset": 80, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 10, - "dwarf": 10, - }, - { - "name": "x11", - "bitsize": 64, - "offset": 88, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 11, - "dwarf": 11, - }, - { - "name": "x12", - "bitsize": 64, - "offset": 96, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 12, - "dwarf": 12, - }, - { - "name": "x13", - "bitsize": 64, - "offset": 104, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 13, - "dwarf": 13, - }, - { - "name": "x14", - "bitsize": 64, - "offset": 112, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 14, - "dwarf": 14, - }, - { - "name": "x15", - "bitsize": 64, - "offset": 120, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 15, - "dwarf": 15, - }, - { - "name": "x16", - "bitsize": 64, - "offset": 128, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 16, - "dwarf": 16, - }, - { - "name": "x17", - "bitsize": 64, - "offset": 136, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 17, - "dwarf": 17, - }, - { - "name": "x18", - "bitsize": 64, - "offset": 144, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 18, - "dwarf": 18, - }, - { - "name": "x19", - "bitsize": 64, - "offset": 152, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 19, - "dwarf": 19, - }, - { - "name": "x20", - "bitsize": 64, - "offset": 160, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 20, - "dwarf": 20, - }, - { - "name": "x21", - "bitsize": 64, - "offset": 168, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 21, - "dwarf": 21, - }, - { - "name": "x22", - "bitsize": 64, - "offset": 176, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 22, - "dwarf": 22, - }, - { - "name": "x23", - "bitsize": 64, - "offset": 184, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 23, - "dwarf": 23, - }, - { - "name": "x24", - "bitsize": 64, - "offset": 192, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 24, - "dwarf": 24, - }, - { - "name": "x25", - "bitsize": 64, - "offset": 200, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 25, - "dwarf": 25, - }, - { - "name": "x26", - "bitsize": 64, - "offset": 208, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 26, - "dwarf": 26, - }, - { - "name": "x27", - "bitsize": 64, - "offset": 216, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 27, - "dwarf": 27, - }, - { - "name": "x28", - "bitsize": 64, - "offset": 224, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 28, - "dwarf": 28, - }, - { - "name": "x29", - "bitsize": 64, - "offset": 232, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 29, - "dwarf": 29, - "generic": "fp", - "alt-name": "fp", - }, - { - "name": "x30", - "bitsize": 64, - "offset": 240, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 30, - "dwarf": 30, - "generic": "lr", - "alt-name": "lr", - }, - { - "name": "sp", - "bitsize": 64, - "offset": 248, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 31, - "dwarf": 31, - "generic": "sp", - "alt-name": "sp", - }, - { - "name": "pc", - "bitsize": 64, - "offset": 256, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 32, - "dwarf": 32, - "generic": "pc", - "alt-name": "pc", - }, - { - "name": "cpsr", + "name": "r6", "bitsize": 32, - "offset": 264, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 33, - "dwarf": 33, - }, -] - -INTEL64_GPR = [ - { - "name": "rax", - "bitsize": 64, - "offset": 0, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 0, - "dwarf": 0, - }, - { - "name": "rbx", - "bitsize": 64, - "offset": 8, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 3, - "dwarf": 3, - }, - { - "name": "rcx", - "bitsize": 64, - "offset": 16, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 2, - "dwarf": 2, - "generic": "arg4", - "alt-name": "arg4", - }, - { - "name": "rdx", - "bitsize": 64, "offset": 24, "encoding": "uint", "format": "hex", "set": 0, - "gcc": 1, - "dwarf": 1, - "generic": "arg3", - "alt-name": "arg3", - }, - { - "name": "rdi", - "bitsize": 64, - "offset": 32, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 5, - "dwarf": 5, - "generic": "arg1", - "alt-name": "arg1", - }, - { - "name": "rsi", - "bitsize": 64, - "offset": 40, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 4, - "dwarf": 4, - "generic": "arg2", - "alt-name": "arg2", - }, - { - "name": "rbp", - "bitsize": 64, - "offset": 48, - "encoding": "uint", - "format": "hex", - "set": 0, "gcc": 6, "dwarf": 6, - "generic": "fp", - "alt-name": "fp", }, { - "name": "rsp", - "bitsize": 64, - "offset": 56, + "name": "r7", + "bitsize": 32, + "offset": 28, "encoding": "uint", "format": "hex", "set": 0, "gcc": 7, "dwarf": 7, - "generic": "sp", - "alt-name": "sp", }, { "name": "r8", - "bitsize": 64, - "offset": 64, + "bitsize": 32, + "offset": 32, "encoding": "uint", "format": "hex", "set": 0, "gcc": 8, "dwarf": 8, - "generic": "arg5", - "alt-name": "arg5", }, { "name": "r9", - "bitsize": 64, - "offset": 72, + "bitsize": 32, + "offset": 36, "encoding": "uint", "format": "hex", "set": 0, "gcc": 9, "dwarf": 9, - "generic": "arg6", - "alt-name": "arg6", }, { "name": "r10", - "bitsize": 64, - "offset": 80, + "bitsize": 32, + "offset": 40, "encoding": "uint", "format": "hex", "set": 0, @@ -1185,18 +815,20 @@ def get_register_context(self): }, { "name": "r11", - "bitsize": 64, - "offset": 88, + "bitsize": 32, + "offset": 44, "encoding": "uint", "format": "hex", "set": 0, "gcc": 11, "dwarf": 11, + "generic": "fp", + "alt-name": "fp", }, { "name": "r12", - "bitsize": 64, - "offset": 96, + "bitsize": 32, + "offset": 48, "encoding": "uint", "format": "hex", "set": 0, @@ -1204,80 +836,49 @@ def get_register_context(self): "dwarf": 12, }, { - "name": "r13", - "bitsize": 64, - "offset": 104, + "name": "sp", + "bitsize": 32, + "offset": 52, "encoding": "uint", "format": "hex", "set": 0, "gcc": 13, "dwarf": 13, + "generic": "sp", + "alt-name": "r13", }, { - "name": "r14", - "bitsize": 64, - "offset": 112, + "name": "lr", + "bitsize": 32, + "offset": 56, "encoding": "uint", "format": "hex", "set": 0, "gcc": 14, "dwarf": 14, + "generic": "lr", + "alt-name": "r14", }, { - "name": "r15", - "bitsize": 64, - "offset": 120, + "name": "pc", + "bitsize": 32, + "offset": 60, "encoding": "uint", "format": "hex", "set": 0, "gcc": 15, "dwarf": 15, - }, - { - "name": "rip", - "bitsize": 64, - "offset": 128, - "encoding": "uint", - "format": "hex", - "set": 0, - "gcc": 16, - "dwarf": 16, "generic": "pc", - "alt-name": "pc", + "alt-name": "r15", }, { - "name": "rflags", - "bitsize": 64, - "offset": 136, - "encoding": "uint", - "format": "hex", - "set": 0, - "generic": "flags", - "alt-name": "flags", - }, - { - "name": "cs", - "bitsize": 64, - "offset": 144, - "encoding": "uint", - "format": "hex", - "set": 0, - }, - { - "name": "fs", - "bitsize": 64, - "offset": 152, - "encoding": "uint", - "format": "hex", - "set": 0, - }, - { - "name": "gs", - "bitsize": 64, - "offset": 160, + "name": "cpsr", + "bitsize": 32, + "offset": 64, "encoding": "uint", "format": "hex", "set": 0, + "dwarf": 128, }, ] diff --git a/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py b/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py index 922cb7f326f33..afe344b3f2ffb 100644 --- a/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py +++ b/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py @@ -10,7 +10,6 @@ from lldbsuite.test.lldbtest import TestBase from lldbsuite.test import lldbutil -@skipIf(oslist=["linux"], archs=["arm$"]) class ScriptedFrameProviderTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True diff --git a/lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py b/lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py index b15bfb24804b6..87477ac1bc59f 100644 --- a/lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py +++ b/lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py @@ -9,7 +9,6 @@ from lldbsuite.test.lldbtest import TestBase from lldbsuite.test import lldbutil -@skipIf(oslist=["linux"], archs=["arm$"]) class FrameProviderCircularDependencyTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True