ilya-nozhkin updated this revision to Diff 409091.
ilya-nozhkin edited the summary of this revision.
ilya-nozhkin added a comment.
Herald added a subscriber: mgrang.

Implemented the approach suggested by @labath. I.e. now the target's hijacking 
listener is activated before `Process::Launch`.

There are actually two ways of implementing that. The first of them (which is 
used in this diff) is to make the target activate the hijacking listener right 
after the process creation. The second one is to specify the hijacking listener 
in the launch info and then pass it to the platform, but it requires to modify 
all platforms to force them to activate the hijacking listener passed via 
launch info (currently, no platform actually does that). I've chosen the first 
way because it seems to be reliable and safe. I.e. the target won't depend on 
platforms, so, it'll be harder to break event dispatching again by some 
non-related modifications of platform's code.

I've also decided not to remove platform-specific hijacking listeners yet 
because some platforms define a hijacking listener even in asynchronous mode 
and then use it for waiting for the process to stop (for example, 
PlatformQemuUser does that). I'll try to test tomorrow whether it is possible 
to remove hijacking listeners at least from some subset of platforms.


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

https://reviews.llvm.org/D119548

Files:
  lldb/include/lldb/Target/Target.h
  lldb/packages/Python/lldbsuite/test/lldbtest.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/source/Target/Process.cpp
  lldb/source/Target/Target.cpp
  lldb/test/API/tools/lldb-vscode/stop-hooks/Makefile
  lldb/test/API/tools/lldb-vscode/stop-hooks/TestVSCode_stop_hooks.py
  lldb/test/API/tools/lldb-vscode/stop-hooks/main.c
  vscode-race-fix-3.patch

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

Reply via email to