Details
-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
Rely on ProcessInterface::sendControlSignal() instead.
It looks like in some cases we are using DeviceProcessSignalOperation for killing a process without having associated QtcProcess instance:
SshDeviceProcessList::doKillProcess() LocalProcessList::doKillProcess()
It kills the selected process using processId.
RemoteLinuxKillAppService::doDeploy()
It kills the process using path.
So we should still be able to do this without having associated process instance.
In addition we currently have 2 usages of DeviceProcessSignalOperation for interrupting running process:
CdbEngine::doInterruptInferior() GdbEngine::interruptInferior()
In this case most probably they may be substituted with a call to associated QtcProcess::interrupt().
Moreover, the:
Debugger::Internal::interruptProcess()
used on linux for local and remote, implements its own interrupt by calling kill with SIG_INT - this should be most probably replaced by a call to QtcProcess::interrupt().
We should also probably implement QtcProcess::interrupt() by sending SIG_INT on linux, and invoking the magic code that exists inside procinterrupt.cpp on windows.