slydiman wrote:

@labath It seems we do not need qSupported and qUpgradeToGdbConnection. We can 
run
`lldb-server platform --server --listen 1234 --gdbserver-port 1235`

Option 1:
On receiving qLaunchGDBServer we can
- fork the child process to know the new pid
- send the response with the pid and port 1235
- wait for the connection on the port 1235 for 10 seconds
  - kill the child process if no connection accepted in 10 seconds
  - execve `lldb-server gdbserver --fd x` where x is fd of the accepted 
connection
We need a pipe for communication between the main `lldb-server platform` 
process and the forked child process within 10 secconds. But unfortunately this 
scenario is impossible on Windows because of fork() is missing. 

Option 2:
It seems PlatformRemoteGDBServer uses `debugserver_pid` only to kill the 
gdbserver process if connection failed. 
It seems we can just do nothing and respond `pid:0;port:1235;` to 
`qLaunchGDBServer`. Then listen the port 1235 and launch `lldb-server gdbserver 
--fd x` when a connection is accepted. `lldb-server gdbserver` must exit if the 
connection x is closed.

https://github.com/llvm/llvm-project/pull/100670
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to