HomePhabricator

[lldb] [testsuite] Fix Linux fail: Unwind/thread-step-out-ret-addr-check.test

Authored by jankratochvil on Dec 21 2019, 2:27 AM.

Description

[lldb] [testsuite] Fix Linux fail: Unwind/thread-step-out-ret-addr-check.test

D71372 introduced: Unwind/thread-step-out-ret-addr-check.test failing on
Fedora 30 Linux x86_64.

[lldb] Add additional validation on return address in 'thread step-out'
https://reviews.llvm.org/D71372

One problem is the underscored _nonstandard_stub in the .s file but not in
the LLDB command:

(lldb) breakpoint set -n nonstandard_stub
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
(lldb) process launch
Process 21919 exited with status = 0 (0x00000000)
Process 21919 launched: '/home/jkratoch/redhat/llvm-monorepo-clangassert/tools/lldb/test/Unwind/Output/thread-step-out-ret-addr-check.test.tmp' (x86_64)
(lldb) thread step-out
error: invalid thread
(lldb) _

Another problem is that Fedora Linux has executable stack by default and all
programs indicate non-executable stack by PT_GNU_STACK, after fixing the
underscore I was getting:

(lldb) thread step-out
Process 22294 exited with status = 0 (0x00000000)
(lldb) _

A different approach was tried as:

[lldb] Refactor thread-step-out-ret-addr-check test to use .data instead of stack variable
https://reviews.llvm.org/D71789

Differential revision: https://reviews.llvm.org/D71784

Details

Committed
jankratochvilDec 21 2019, 2:27 AM
Differential Revision
D71784: Fedora Linux fails `Unwind/thread-step-out-ret-addr-check.test`
Parents
rGdf6879ec0227: [lldb] Fix ARM32 inferior calls
Branches
Unknown
Tags
Unknown