This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Ctrl+C when a watchpoint is set gdb


On Nov 6, 2007 6:41 PM, Daniel Jacobowitz <drow@false.org> wrote:
> On Tue, Nov 06, 2007 at 06:32:04PM -0800, Siva Velusamy wrote:
> > However, the function bpstat_explains_signal is defined as follows:
> >
> > breakpoint.h:547
> > /* Nonzero if a signal that we got in wait() was due to circumstances
> >    explained by the BS.  */
> > /* Currently that is true if we have hit a breakpoint, or if there is
> >    a watchpoint enabled.  */
> > #define bpstat_explains_signal(bs) ((bs) != NULL)
> >
> > Since there is a watchpoint defined, this ends up evaluating to true,
> > even though this is a trap signal caused by Ctrl+C. Eventually, this
> > leads to keep_going(ecs) being called.
>
> You shouldn't be getting to the call to bpstat_explains_signal at all.
> Is your remote stub returning the wrong signal for C-c?  It should be
> TARGET_SIGNAL_INT, not TARGET_SIGNAL_TRAP.
>

Yes, it is returning TARGET_SIGNAL_TRAP. I will see if making it
TARGET_SIGNAL_INT fixes the issue. Following up on your comment, I
looked through the definitions of all the signals in signals.c, and I
don't think the remote server followed many of the conventions. Thanks
for the pointer!

-Siva


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]