JDevlieghere added a comment.

In D75877#1914900 <https://reviews.llvm.org/D75877#1914900>, @labath wrote:

> In D75877#1914755 <https://reviews.llvm.org/D75877#1914755>, @JDevlieghere 
> wrote:
>
> > In D75877#1913959 <https://reviews.llvm.org/D75877#1913959>, @labath wrote:
> >
> > > A more principled way to make this work would be to intercept (record) 
> > > the Host::FindProcesses api. That way other functionality pertaining to 
> > > running processes (e.g. the "platform process list" command) would also 
> > > work. But if this is all you care about right now, then maybe this is 
> > > fine...
> >
> >
> > We could totally add a provider for that. I didn't because it seemed like 
> > overkill but if you're on board I also prefer that over a random PID.
>
>
> In general, I am in favor of doing the capture at the lowest level possible. 
> For this particular feature/bug, it is overkill, but OTOH, this will also 
> make it possible to support things other things without adding hacks into 
> random pieces of code.
>
> > 
> > 
> >> The part that worries me more is the test. There are a lot of subtleties 
> >> involved in making attach tests (and attach-by-name tests in particular) 
> >> work reliably everywhere. I think this should be a dotest test, as there 
> >> we already have some machinery to do these kinds of things 
> >> (`lldb_enable_attach`, `wait_for_file_on_target`), and python is generally 
> >> much better at complex control flow (I am very much against subshells and 
> >> background processes in lit tests). Reproducers make this somewhat 
> >> complicated because you cannot use the liblldb instance already loaded 
> >> into the python process. But maybe you could run lldb in a subprocess 
> >> similar to how the pexpect tests do it?
> > 
> > The problem is the `SBDebugger::Initialize()` that's called from the SWIG 
> > bindings, as soon as you import lldb it's already too late for the 
> > reproducers. I'm working on being able to capture/replay the test suite and 
> > currently I have the following hack:
> > 
> >   if 'DOTEST_CAPTURE_PATH' in os.environ:
> >      SBReproducer.Capture(os.environ['DOTEST_CAPTURE_PATH'])
> >   SBDebugger.Initialize()
> > 
> > 
> > If you're fine with having that in `python.swig` unconditionally we could 
> > make a dotest-test work.
>
> I'm not sure how that would help because for the test you need to run lldb 
> both in capture and replay mode, and I don't think you can currently do that 
> within a single process. It would be cool if that was possible, but even then 
> we'd have the impendance mismatch because we'd need to run 
> `SBDebugger.Initialize` inside a specific test method, whereas normally it 
> gets run much earlier.
>
> That's why I was talking about subprocesses in the previous patch. The test 
> would only be responsible for building the inferior and driving the whole 
> thing, while capture/replay would happen inside separate processes:


Ah, I misunderstood subprocess as another Python process, yeah launching the 
driver should work. Thanks for the clarification.


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75877/new/

https://reviews.llvm.org/D75877



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to