> On Aug 26, 2022, at 7:05 AM, Adrian Vogelsgesang via Phabricator via > lldb-commits <lldb-commits@lists.llvm.org> wrote: > > avogelsgesang added a comment. > >> I don't know much about coroutines, but it seems like your goal is to format >> them like a linked list > > actually, my preferred goal would be to show them as a logical, user-level > thread. Such that you can type > > thread backtrace cxxcoro:0x55555555b2a0 > > to get the backtrace of the logical coroutine thread routed at the coroutine > at address `0x55555555b2a0`, or maybe even > > thread backtrace cxxcoro:hdl > > where `hdl` is evaluated as an expression to identify the coroutine handle > from where to dump the backtrace. > > Also, it would be neat if those logical threads show up in `thread list`... > > But it seems there is currently no infrastructure yet in LLDB for logical > threads provided by `LanguageRuntime` plugins. > > I guess at some point, I will write an RFC about that on discourse. But > before that, I will first do some more exploration on how LLDB works and I > will first grab the low-hanging fruits (like a data formatter for > `std::coroutine_handle` and patching LLVM to emit the necessary debug info)
lldb has the notion of "extended backtrace threads" - backed by lldb's "History" threads - that it uses in a similar circumstance handling Darwin dispatch queues. If you have a thread that is serving a Darwin "dispatch queue" SBThread.GetExtendedBacktraceThreads will return the backtrace of the thread that enqueued the work, at the point where the enqueuing is done. I bet you could make the same setup work for these coroutines. Jim > > > Repository: > rG LLVM Github Monorepo > > CHANGES SINCE LAST ACTION > https://reviews.llvm.org/D132624/new/ > > https://reviews.llvm.org/D132624 > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits