* procfs.c (procfs_wait): Use the signal from the pr_info rather
authorJim Kingdon <jkingdon@engr.sgi.com>
Wed, 27 Apr 1994 23:10:26 +0000 (23:10 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Wed, 27 Apr 1994 23:10:26 +0000 (23:10 +0000)
than trying to deduce it from the fault.

gdb/ChangeLog
gdb/procfs.c

index 8da57d1..c71d3c0 100644 (file)
@@ -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
index 604cac6..1a23a9b 100644 (file)
@@ -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: