lanza added a comment. What's the boundaries of the stable API, then? This was a public API that was removed and broke a plugin I used for vim (and I'll be this isn't the only case, just I'm maybe the only one who has worked on lldb before whose tool broke). The author used `threading.Thread(someFunc, (debugger,))` to listen on a socket for fetch requests from lldb outside of the prompt. Not the most beautiful of implementations, but it worked for years on top of a promised public stable API.
As far as I know, the only other ways to do this would be to use the listener/event forwarding mechanism Greg used to set up the curses based GUI in `Debugger::HandleProcessEvent` or to write an entire new frontend analogous to the lldb tool itself. The latter implementation is a couple orders of magnitude more work to implement for a simple plugin author like this. The former isn't exposed in the SBAPI. Maybe the SBAPI needs access to the `Debugger::m_forward_listener_sp` for GUI based usages? Something like: class SBForwardEventListener: // called for process events def HandleProcessEvent(self, event: lldb.SBEvent): // called for thread events def HandleThreadEvent(self, event: lldb.SBEvent): // called for breakpoint events def HandleBreakpointEvent(self, event: lldb.SBEvent): for the developer can invoke def __lldb_init_module(...): debugger.RegisterForwardEventListener(MyListener()) and be informed for the same whenever the curses GUI would be. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93926/new/ https://reviews.llvm.org/D93926 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits