[PATCH] [GDBServer] Send SIGINT using process group ID
Pedro Alves
palves@redhat.com
Wed May 18 12:10:00 GMT 2016
On 05/11/2016 10:51 PM, Jim Chen wrote:
> Hi,
>
> linux_request_interrupt is supposed to send SIGINT to the process group,
> but it passes the process ID to kill() instead of the process group ID,
> which may not be the same as the process ID.
> The patch calls getpgid
> first to get the process group ID.
>
> Patch tested on arm-linux.
Can you expand on the use case you see this happening on, please?
I can imagine some, but I'd like to hear it from you.
Some have expressed desire to _not_ send the SIGINT to the whole
process group, which may make sense when you're attached to a
process rather than having started it. IIRC, there's a bug filed in
bugzilla about this.
Looking at the code, not-sending-to-process-group-when-attached
is what native GNU/Linux does too (inflow.c:pass_signal).
Seems like "c&" -> "interrupt" doesn't consider "attach" either,
as inf-ptrace.c:inf_ptrace_interrupt sends the SIGINT
to the process, and like gdbserver, assumes the inferior's
PID is the process group id.
Thanks,
Pedro Alves
More information about the Gdb-patches
mailing list