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: Sending signal to inferior


On Fri, Dec 30, 2005 at 05:58:12PM -0500, Bob Rossi wrote:
> On Fri, Dec 30, 2005 at 11:48:02AM -0500, Daniel Jacobowitz wrote:
> > On Fri, Dec 30, 2005 at 11:43:00AM -0500, Bob Rossi wrote:
> > > On Fri, Dec 30, 2005 at 04:57:38AM +0000, Carlos Eduardo Rodrigues de Almeida wrote:
> > > > Thank you.. I'm trying to solve this for days..
> > > 
> > > Wow, that took me a long time to figure out, and I wrote libtgdb.
> > > 
> > > It's the tty command that is allowing libtgdb to interrupt GDB when the
> > > inferior is running. Apparently, if you don't move the inferior's
> > > terminal via the GDB tty command, then you can't interrupt the inferior
> > > when it's running.
> > > 
> > > Basically, I'm assuming that the SIGINT to GDB is ignored if the
> > > inferior has control of the terminal. However, if you put the inferior
> > > on a different terminal, then GDB must handle the SIGINT. This
> > > explanation is just a guess though.
> > 
> > It shouldn't be.  Check whether GDB is reaching handle_sigint() and
> > whether it is going through the event loop properly?
> 
> This is a tough one. For some reason, if I start debugging GDB, it
> doesn't reach the handle_sigint line. However, with fprintf there, I'm
> seeing output. Could I be doing something wrong or is this expected?
> 
> I configured && compiled like this:
>   cvs -d ':ext:bobbybrasko@sources.redhat.com:/cvs/src' co gdb
>   CFLAGS=-g ../src/configure
>   make
> 
> I was wondering if any of the -W compile options stop me from debuging
> GDB in this case.
> 

What I can tell you from instrumentation is this. handle_sigint is not
called when the inferior is running and the tty command was used. Out of
the 4 cases

  inferior running/tty used
  inferior running/tty not used
  inferior not running/tty used
  inferior not running/tty not used

only the first case does not allow GDB to get into handle_sigint. 

So, if GDB get's a SIGINT when the inferior is running and the tty is not set,
then handle_sigint get's called. After the inferior is done running,
quit() get's called and displays "Quit".

If GDB get's a SIGINT when the inferior is running and the tty is not
set, handle_sigint does not get called, and somehow GDB is interupted.
However, I can't figure out why.

Bob Rossi


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