aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2025-11-01 21:29:26 -0700
committerKevin Buettner <kevinb@redhat.com>2026-03-03 14:24:34 -0700
commitac9d893e3c44af942588fd1a5c694a8b8b351fb3 (patch)
tree91f954b95232a9139d571abcb1603ba1baa4ffa4 /gdb/python/python.c
parentb2bc71a12976fc169295662ab17f692f13d167d2 (diff)
downloadbinutils-ac9d893e3c44af942588fd1a5c694a8b8b351fb3.tar.gz
binutils-ac9d893e3c44af942588fd1a5c694a8b8b351fb3.tar.bz2
binutils-ac9d893e3c44af942588fd1a5c694a8b8b351fb3.zip
[gdb/testsuite] Fix gdb.base/inline-frame-cycle-unwind.exp for s390x
This commit fixes six failures for s390x due to a fundamental difference in unwinding behavior between s390x and other architectures: FAIL: gdb.base/inline-frame-cycle-unwind.exp: bt: cycle at level 5: backtrace when the unwind is broken at frame 5 FAIL: gdb.base/inline-frame-cycle-unwind.exp: bt: cycle at level 3: backtrace when the unwind is broken at frame 3 FAIL: gdb.base/inline-frame-cycle-unwind.exp: bt: cycle at level 1: backtrace when the unwind is broken at frame 1 FAIL: gdb.base/inline-frame-cycle-unwind.exp: bt -no-filters: cycle at level 5: backtrace when the unwind is broken at frame 5 FAIL: gdb.base/inline-frame-cycle-unwind.exp: bt -no-filters: cycle at level 3: backtrace when the unwind is broken at frame 3 FAIL: gdb.base/inline-frame-cycle-unwind.exp: bt -no-filters: cycle at level 1: backtrace when the unwind is broken at frame 1 The core issue is that on s390x, the Canonical Frame Address (CFA) for a function points *into the caller's stack frame*, whereas on x86_64 or aarch64 the CFA points *within the current function's frame*. This architectural difference causes cycle detection to occur later on s390x. The patch resolves this by: - Making expected backtrace output architecture-specific. - For non-s390x targets: expecting the full set of frames up to the specified level. - For s390x: expecting fewer frames before detecting the cycle (e.g., level 5 shows 3 frames instead of 5). - Skipping the cycle at level 1 test entirely on s390x since it cannot be detected at that frame. Tested using recent Fedora releases on s390x, x86_64, and aarch64.
Diffstat (limited to 'gdb/python/python.c')
0 files changed, 0 insertions, 0 deletions