[all-commits] [llvm/llvm-project] 74a012: [lldb/aarch64] Fix PC register info augmentation (...
Pavel Labath via All-commits
all-commits at lists.llvm.org
Tue Jun 10 10:50:55 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 74a012ed756f5280c71e281c0fd2dd50f83f38b7
https://github.com/llvm/llvm-project/commit/74a012ed756f5280c71e281c0fd2dd50f83f38b7
Author: Pavel Labath <pavel at labath.sk>
Date: 2025-06-10 (Tue, 10 Jun 2025)
Changed paths:
M lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
A lldb/unittests/ABI/AArch64/ABIAArch64Test.cpp
A lldb/unittests/ABI/AArch64/CMakeLists.txt
A lldb/unittests/ABI/CMakeLists.txt
M lldb/unittests/CMakeLists.txt
Log Message:
-----------
[lldb/aarch64] Fix PC register info augmentation (#143499)
This fixes a regression caused by #139817, where we would fail to unwind
(using eh_frame) when using debug stubs (like qemu) which do not provide
eh_frame register numbers.
Unwinding fails because the unwinder tries to convert pc register number
to the "eh_frame" scheme (and fails). Previously that worked because the
code used a slightly different pattern which ended up comparing the
number by converting it to the "generic" scheme (which we do provide).
I don't think that's a bug in the unwinder -- we just need to make sure
we provide the register number all the time.
The associated test is not particularly useful, but I'm hoping it could
be used to test other changes like this as well. Other register
augmentation changes are tested in an end-to-end fashion (by injecting
gdb-remote packets and then trying to read registers). That works well
for testing the addition of subregisters, but it isn't particularly
suitable for testing register numbers, as the only place (that I know
of) where this manifests is during unwinding, and recreating an
unwindable process in a test like this is fairly challenging.
Probably the best way to ensure coverage for this scenario would be to
have lldb-server stop sending eh_frame register numbers (align it with
other gdb-like stubs).
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list