RFC: Do not call write_pc for "signal SIGINT"
Daniel Jacobowitz
drow@false.org
Tue Jan 20 15:32:00 GMT 2009
On Mon, Nov 17, 2008 at 04:55:01PM -0500, Daniel Jacobowitz wrote:
> Here it is with a testcase.
>
> To recap: there is a tricky bug in signal_command. If any non-zero
> signal is specified, it performs a jump to the current address instead
> of just resuming there. This causes any pending system call to be
> interrupted, in a way that leaves a kernel-internal value in the
> return value register. If we just delete that code, and the FIXME
> that goes with it, the right thing happens: instead of "Unknown
> error 514", the system call returns EINTR and the loop continues.
> 2008-11-17 Daniel Jacobowitz <dan@codesourcery.com>
>
> PR gdb/2241
> * infcmd.c (signal_command): Do not specify a resume PC.
>
> 2008-11-17 Daniel Jacobowitz <dan@codesourcery.com>
>
> PR gdb/2241
> * gdb.base/interrupt.c (sigint_handler): New.
> (main): Install a SIGINT handler if SIGNALS is defined. Exit
> on error.
> * gdb.base/interrupt.exp: Define SIGNALS unless gdb,nosignals.
> Test "signal SIGINT".
I have checked this in.
--
Daniel Jacobowitz
CodeSourcery
More information about the Gdb-patches
mailing list