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

Reply via email to