clayborg added a comment. Can each real stack frame inject N frames in the middle of a stack frame for these asynchronous functions? Or is this like the libdispatch stuff that show more frames at the end of a normal stack trace? Can you attach some sample backtraces with some annotations?
================ Comment at: lldb/include/lldb/Target/LanguageRuntime.h:21 #include "lldb/Target/ExecutionContextScope.h" +#include "lldb/Target/RegisterContext.h" #include "lldb/Target/Runtime.h" ---------------- I don't think we need this in the header file as we only use pointers to a RegisterContext. So move this to the .cpp file? ================ Comment at: lldb/include/lldb/Target/LanguageRuntime.h:188 + GetAsyncedFrameUnwindPlan(lldb_private::Thread &thread, + lldb_private::RegisterContext *regctx); + ---------------- Any reason we are passing in the register context and the thread instead of a stack frame? a stack frame has access to the register context and to the thread it belongs to. Or is this register context just a raw register context that was extracted from somewhere in memory? ================ Comment at: lldb/include/lldb/Target/LanguageRuntime.h:192 + virtual lldb::UnwindPlanSP + GetAsyncedFrameForThisLanguage(lldb_private::Thread &thread, + lldb_private::RegisterContext *regctx) { ---------------- What does "ThisLanguage" this mean? Is it the language of the stack frame that owns "regctx"? Should we pass in the current stack frame instead of a register context? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D96839/new/ https://reviews.llvm.org/D96839 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits