In message <[EMAIL PROTECTED]>, 
Rik van Riel writes:
>Rationale:
>SIGSEGV for _user_ mistakes (process accesses wrong stuff)
>SIGBUS for _system_ errors  (ECC error, kernel messes up, ...)

Actually, this is not canonically the distinction made.  On a Unix PC,
        {
                int *a, c[2];
                char *b;
                a = c;
                b = a;
                ++b;
                a = b;
                *a = 0;
        }
would get SIGBUS, because it was a bus error.  The error is not a segmentation
fault; the memory written to is all legitimately available to the process.  It
is a bus error, because the data access is not possible on the bus.  :)

I think "the memory you thought you had actually doesn't exist anywhere" is
more like a segmentation fault than a bus error.

-s

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to