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



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to