jankratochvil created this revision. jankratochvil added reviewers: jingham, labath, clayborg, mossberg. jankratochvil added a project: LLDB. Herald added a subscriber: kristof.beyls.
D71372 <https://reviews.llvm.org/D71372> introduced: `Unwind/thread-step-out-ret-addr-check.test` failing on Fedora 30 Linux x86_64. 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) _ Is the `.section` harmless for non-Linux platforms or will it need some conditional compilation? (`#ifdef` is not available in `.s` file) Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D71784 Files: lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test Index: lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test =================================================================== --- lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test +++ lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test @@ -7,7 +7,7 @@ # RUN: %lldb %t -s %s -b 2>&1 | FileCheck %s breakpoint set -n nonstandard_stub -# CHECK: Breakpoint 1: where = {{.*}}`nonstandard_stub +# CHECK: Breakpoint 1: where = {{.*`_?}}nonstandard_stub process launch # CHECK: stop reason = breakpoint 1.1 Index: lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s =================================================================== --- lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s +++ lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s @@ -10,6 +10,7 @@ # Executing 'thread step-out' here will initially attempt to write a # breakpoint to that stack address, but should fail because of the executable # memory check. +nonstandard_stub: _nonstandard_stub: mov (%rsp), %rdi mov (%rdi), %rsi @@ -18,3 +19,5 @@ add $0x10, %rsp ret + + .section .note.GNU-stack,"",@progbits
Index: lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test =================================================================== --- lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test +++ lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test @@ -7,7 +7,7 @@ # RUN: %lldb %t -s %s -b 2>&1 | FileCheck %s breakpoint set -n nonstandard_stub -# CHECK: Breakpoint 1: where = {{.*}}`nonstandard_stub +# CHECK: Breakpoint 1: where = {{.*`_?}}nonstandard_stub process launch # CHECK: stop reason = breakpoint 1.1 Index: lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s =================================================================== --- lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s +++ lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s @@ -10,6 +10,7 @@ # Executing 'thread step-out' here will initially attempt to write a # breakpoint to that stack address, but should fail because of the executable # memory check. +nonstandard_stub: _nonstandard_stub: mov (%rsp), %rdi mov (%rdi), %rsi @@ -18,3 +19,5 @@ add $0x10, %rsp ret + + .section .note.GNU-stack,"",@progbits
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits