diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/procfs.c | 25 |
2 files changed, 10 insertions, 20 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8da57d1..c71d3c0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Wed Apr 27 16:01:37 1994 Jim Kingdon (kingdon@cygnus.com) + + * procfs.c (procfs_wait): Use the signal from the pr_info rather + than trying to deduce it from the fault. + Wed Apr 27 12:22:46 1994 Steve Chamberlain (sac@cygnus.com) * printcmd.c (print_address_symbolic): Initialize name to empty diff --git a/gdb/procfs.c b/gdb/procfs.c index 604cac6..1a23a9b 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -2315,14 +2315,6 @@ wait_again: case PR_FAULTED: switch (what) { - case FLTPRIV: - case FLTILL: - statval = (SIGILL << 8) | 0177; - break; - case FLTBPT: - case FLTTRACE: - statval = (SIGTRAP << 8) | 0177; - break; #ifdef FLTWATCH case FLTWATCH: statval = (SIGTRAP << 8) | 0177; @@ -2333,19 +2325,12 @@ wait_again: statval = (SIGTRAP << 8) | 0177; break; #endif - case FLTSTACK: - case FLTACCESS: - case FLTBOUNDS: - statval = (SIGSEGV << 8) | 0177; - break; - case FLTIOVF: - case FLTIZDIV: - case FLTFPE: - statval = (SIGFPE << 8) | 0177; - break; - case FLTPAGE: /* Recoverable page fault */ default: - error ("PIOCWSTOP, unknown why %d, what %d", why, what); + /* Use the signal which the kernel assigns. This is better than + trying to second-guess it from the fault. In fact, I suspect + that FLTACCESS can be either SIGSEGV or SIGBUS. */ + statval = ((pi->prstatus.pr_info.si_signo) << 8) | 0177; + break; } break; default: |