JDevlieghere added a comment.

In D93926#2486013 <https://reviews.llvm.org/D93926#2486013>, @lanza wrote:

> 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. 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.

The debugger variable is still present in the lldb namespace, it's `None` 
instead of a default constructed debugger, so I would argue that this is not an 
API breaking change. It has always been documented that those variables are 
only valid in the interactive script interpreter 
(https://lldb.llvm.org/use/python-reference.html#embedded-python-interpreter) 
so it's also not really a policy change. I totally understand how annoying it 
is that this breaks things (I had to fix incorrect uses myself, such as in the 
crashlog/symbolication script) but I think it's worth it because it prevents 
accidental misuse.

> 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.

I'm not sure I understand how this is a problem for the event listener. Why 
can't you save the debugger in `__lldb_init_module` and start the event 
listening thread from there?


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

Reply via email to