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