From 890634eda79caf70305274a7169e6ff08fff4125 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Wed, 27 Apr 1994 23:10:26 +0000 Subject: [PATCH] * procfs.c (procfs_wait): Use the signal from the pr_info rather than trying to deduce it from the fault. --- gdb/ChangeLog | 5 +++++ gdb/procfs.c | 25 +++++-------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8da57d1e34..c71d3c0f20 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 604cac6c62..1a23a9b502 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: