[Lldb-commits] [PATCH] D71784: Fedora Linux fails `Unwind/thread-step-out-ret-addr-check.test`

Mark Mossberg via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Dec 20 14:48:50 PST 2019


mossberg added a comment.

Thanks for looking into this @jankratochvil!

> 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)

Ok, I guess I was incorrectly assuming the stack should be non-executable by default on all platforms. In this case, let's rewrite the test to have a variable that is actually in the .data section (therefore guaranteed to be non-executable), and pass a pass a pointer to it to `nonstandard_stub`. The core requirement is that the pointer passed to `nonstandard_stub` must simply point to some kind of non-executable memory. I can do this.



================
Comment at: lldb/test/Shell/Unwind/Inputs/thread-step-out-ret-addr-check.s:13
 # memory check.
+nonstandard_stub:
 _nonstandard_stub:
----------------
Maybe we can just remove the underscore version, and simply use `nonstandard_stub` if it will work everywhere?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71784/new/

https://reviews.llvm.org/D71784





More information about the lldb-commits mailing list