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]

GDB (not) handling SIGINT...?


Hi all; I'm using GDB 8.1 on a modern 64bit GNU/Linux system (Ubuntu
18.04LTS).

Recently I added a call to sigtimedwait() for SIGINT into my
(multithreaded) program and now I'm having an issue with GDB.

What I want is that if I attach to my program then continue, then use
^C at the GDB terminal, I should get a (gdb) prompt back but I do NOT
want the SIGINT delivered to my program to wake up my sigtimedwait()
call (because it will cause my program to do various things that I
don't want it to do).

I see that SIGINT is set to nopass:

  (gdb) info signals SIGINT
  Signal        Stop      Print   Pass to program Description
  SIGINT        Yes       Yes     No              Interrupt

but yet when I use ^C at the GDB prompt my sigtimedwait() call inside
my program does return with "2" (SIGINT), which I don't want.

I guess I don't understand what the docs mean when they say that the
signal is not passed to the process under debug.  Note that in my case
I'm attaching to the program from a completely different terminal so
there's no issue with process groups etc. and as far as I can
understand it, the signal should only be delivered to GDB not my
process, so unless there's some weird magic at work here it must be GDB
forwarding that signal to my process.

Anyone have any thoughts about this?

Cheers!


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