GDB (not) handling SIGINT...?
Paul Smith <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
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!