oontvoo added a comment.

In D144999#4415137 <https://reviews.llvm.org/D144999#4415137>, @jasonmolenda 
wrote:

> Michael and I looked into this.  This simple c++ file is resulting in 
> eh_frame unwind info on aarch64 darwin instead of compact unwind info.  The 
> eh_frame instructions don't describe the epilogue, so lldb is stopping on the 
> final RET instruction after it has adjusted $sp back to its original value 
> and the unwind now fails to work in the debugger.  That's always the problem 
> with eh_frame/debug_frame from the debugger's point of view - it's only 
> guaranteed to describe the unwind state at throwable locations.  gdb lives 
> exclusively off of eh_frame/debug_frame so in practice gcc/clang (at least on 
> intel) describe both the prologue and the epilogue for the debugger's 
> benefit.  But that's not what this eh_frame includes on aarch64 darwin, and 
> it breaks the debugger because it's trusting the eh_frame to be accurate at 
> every instruction point.
>
> The emission of eh_frame on aarch64 darwin instead of compact unwind, for 
> this simple codegen, is a bug and cannot remain in the tree unfixed.  It will 
> increase binary size and reduce throw performance.  It also happens to cause 
> lldb regressions like this because we've never lived off of eh_frame as our 
> primary unwind format on this platform, but that's a separate issue and I'm 
> not going to dig in to finding a way to detect this & ignore the eh_frame on 
> this target.

Thanks for the details! From your descriptions, I agree that this is a bug - 
the change in this patch is *NOT* intended to change the unwind format when 
there's no personality symbol - (it should only affect custom personality 
symbols, which is not the case in this example)
Still debugging - not sure why it only occurs for aarch64

> Looking at the failing test case that Michael has been debugging, none of 
> these methods have a personality, and yet we're getting eh_frame instead of 
> compact unwind.  That's the bug.




Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144999

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

Reply via email to