[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [cdt-dev] Win32 spawner
|
Good point. If CDT has invoked a 'make', we certainly don't want to kill
just the make.exe and leave its children running. I guess
TerminateProcess isn't such a good idea after all (and I'm not
particularly motivated to clean-room develop the logic to traverse and
kill a process tree--I've looked up some example code on the net and it's
not pretty).
So, I'll pursue two possibilities:
- get our debugger engine to die on a Ctrl-C
- enhance the spawner to accept a terminate policy (hard kill vs
ctrl-c)
Thanks,
John
At 04:44 PM 7/16/2008, Schaefer, Doug wrote:
Content-class:
urn:content-classes:message
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C8E78D.335F53D0"
Good question. I think it has something to
do with allowing the child process to clean up. Also, TerminateProcess
only kills that process, not the children of that process. But I think
there is a way to do that too, but it involves a lot of code.
Feel free to try and improve it. It probably
needs it. Just make sure you don't break gdb spawning :)
BTW, I've worked a little over the past go get everything that doesn't
need the spawner's signaling capability off of it and onto Java's
Runtime.exec. It seems to work better in certain situations.
Cheers,
Doug.
- From: cdt-dev-bounces@xxxxxxxxxxx
[
mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of John
Cortell
- Sent: Wednesday, July 16, 2008 4:36 PM
- To: CDT General developers list.
- Subject: [cdt-dev] Win32 spawner
- I've been trying to figure out why Spawner.kill() isn't killing a
process for us. The "process", in our case, is our debugger
engine--a Win32 executable. We use the spawner to launch it, and on
shutdown, we sometimes need to abruptly kill it (if it's taking too
long to shut down gracefully). Again, calling kill() on the Process
object, which is a Spawner, isn't doing the trick.
- I found the answer in starter.cpp. It contains a handler which waits
for the terminate event-handle to be signaled and then goes about trying
to kill the process it earlier created. Problem is: it does so by sending
a console CTRL-C event (unless it's a cygwin process, in which case it
runs a "kill -SIGTERM" command). In our case, the process is
not a cygwin process. The CTRL-C event isn't doing the trick, and I have
to wonder...why aren't we just using the TerminateProcess Win32
function? We have the process handle, after all. I've coded it and it's
working. I'm just scratching my head wondering why we'd try sending a
CTRL-C instead.
- John
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev