Without calling waitpid() after detaching from the inferior
a race condition could occur where the ptrace(...) call would
finish before it was actually detached, leading to the following
gdb to fail attaching as the stub was still attached to it.
Calling waitpid here solves the race condition.
Fixes: QTCREATORBUG-29463
Change-Id: Ia1d79a18a96078bbf72589bebbc7d7ac027dea0d
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Previously the finished signal was sent not sent soon enough
for the Process to recognizes it correctly.
Also, the process stub would exit prematurely in cases of crashes.
The process stub should only return an error exit code if it did not
show the "waiting for keypress" message.
Fixes: QTCREATORBUG-29350
Change-Id: I86f7d75bacbdb5ee2b0009669926d94b6a75346a
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Allow the server to listen for command results.
Fixes Qt Creator hanging when stopping application
being debugged.
Change-Id: Ia175b1bb1836b5593bc073394fa152923e1dda28
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Otherwise the request to exit from Qt Creator would be missed,
making QtC hang on exit while waiting for the stub to exit.
Fixes: QTCREATORBUG-15749
Change-Id: I26dfa2c8aa358c8d7ad662ef806f459d1bbb6ec2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Currently the process stub does not support starting / debugging
processes on remote devices. To reflect this the "Run In Terminal"
aspect is disabled for remote targets.
Fixes: QTCREATORBUG-29058
Change-Id: I9b3bcd65d4db468c683f2743a49227bfbecaf3d3
Reviewed-by: hjk <hjk@qt.io>
Docker and ssh devices need the real process id on the
remote device. The process stub now send this if it receives
it as the first line of output.
Change-Id: I5d3af39651958fc88d21c3854a0fa1d7f51547a6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
To keep the terminal from closing immediately, ask the user
to press enter after the inferior exited.
Make it configurable as the terminal plugin does not need
this.
Change-Id: I1949895f022a54539a6139be9f92fdc698f6534e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Adds a new helper app "process_stub" that replaces the previous.
"process_stub_unix/win". The purpose was and is to allow processes
to be "injected" into other hosts apps like terminals while still
being able to control and debug them.
A new base class called "TerminalInterface" is used for both the new
Terminal plugin and the legacy TerminalProcess implementation.
Fixes: QTCREATORBUG-16364
Change-Id: If21273fe53ad545d1a768c17c83db4bf2fd85395
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: hjk <hjk@qt.io>