clayborg added a comment. In D97644#2593228 <https://reviews.llvm.org/D97644#2593228>, @jasonmolenda wrote:
> Another alternative to RegisterContext::BehavesLikeZerothFrame that I've > thought of is RegisterContext::GetPCForSymbolication, similar to GetPC() > today. I think everyone who is decrementing $pc is doing it for > symbolication, so having this hint and then leaving it to everyone to > decrement-or-not may not be a great choice. It may be easier for > higher-levels if RegisterContext can provide an Address suitable for > symbolication directly. If "behaves_like_zeroth_frame" is in the register context for the purpose of backing up the address, then I vote for RegisterContext::GetPCForSymbolication(). We can actually backup the PC by the min instruction size if we really want to get fancy. It would be really nice to have this centralized in one location so we don't have a bunch of code locations backing up the PC. > For the Swift async unwinds, the saved pc values we have are not normal ABI > style calls, and backing up the resume pc results in bad symbolication. I've > been meaning to add a capability like this to RegisterContext for a while for > DWARFExpression::Evaluate where we get a frame's pc value to look up a > location list entry too (and do not decr the pc resulting in bogus values > being displayed for noreturn calls) - I'll fix that in a separate patch. What does this mean for ReportCrash and other tools that like to just walk the frame pointer chain? Does that still produce valid stack trace, just with some Swift async frames missing? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D97644/new/ https://reviews.llvm.org/D97644 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
