Skip to content

Commit f3b7ad4

Browse files
committed
[lldb][NFC] Update testsuite skip comment
to explain why the skip was added.
1 parent c021cac commit f3b7ad4

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

lldb/test/API/functionalities/unwind/cortex-m-exception/TestCortexMExceptionUnwind.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,24 @@
1212
class TestCortexMExceptionUnwind(TestBase):
1313
NO_DEBUG_INFO_TESTCASE = True
1414

15-
@skipUnlessDarwin # on the lldb-remote-linux-ubuntu CI, only get 1 stack frame not 6
15+
# on the lldb-remote-linux-ubuntu CI, the binary.json's triple of
16+
# armv7m-apple is not being set in the Target triple, and we're
17+
# picking the wrong ABI plugin, ABISysV_arm.
18+
# ABISysV_arm::CreateDefaultUnwindPlan() doesn't have a way to detect
19+
# arm/thumb for a stack frame, or even the Target's triple for a
20+
# Cortex-M part that is always thumb. It hardcodes r11 as the frame
21+
# pointer register, which is correct for arm code but not thumb.
22+
# It is never correct # on a Cortex-M target.
23+
# The Darwin ABIMacOSX_arm diverges from AAPCS and always uses r7 for
24+
# the frame pointer -- the thumb convention -- whether executing arm or
25+
# thumb. So its CreateDefaultUnwindPlan picks the correct register for
26+
# the frame pointer, and we can walk the stack.
27+
# ABISysV_arm::CreateDefaultUnwindPlan will only get one frame and
28+
# not be able to continue.
29+
#
30+
# This may only be occuring on a 32-bit Ubuntu bot; need to test
31+
# 64-bit Ubuntu and confirm.
32+
@skipUnlessDarwin
1633
def test_no_fpu(self):
1734
"""Test that we can backtrace correctly through an ARM Cortex-M Exception return stack"""
1835

0 commit comments

Comments
 (0)