signals at breakpoints in Linux

Jim Blandy jimb@cygnus.com
Mon Jul 26 11:55:00 GMT 1999


> I'm trying to build a minimal debugger under Linux that maintains a set of
> breakpoints and prints out some information each time a breakpoint is hit.
> It works fine, except for the case where the child process executes a
> breakpoint instruction and wait(2) tells me that a (non-SIGTRAP) signal is
> pending. I can't seem to handle this case correctly, no matter what i try.
> What is the correct course of action when a breakpoint and signal are
> encountered simultaneously? I've tried looking at the sources for GDB, but
> they're pretty tough to wade through.

I'm not positive about this, but I think you're misunderstanding the
results from ptrace.  Not that they're wonderfully clear to begin
with.

The result from wait tells you why the program stopped.  As I
understand it, it either stopped because of a breakpoint, or it
stopped because of a signal --- it can't stop for both reasons.

What exactly is wait returning?  Where exactly is the PC when wait
returns?


More information about the Gdb mailing list