Aparently it is there in the libc5 man pages, but not the glibc (for obvious
reasons). In any case, it is correct -- the kernel never sends a SIGBUS
signal, but the symbol still has a value (7), and can be sent with a kill()
call.
(Well, not quite -- it will happen on a unhandled "segment not present" or
"stack segment" error, from a quick read of linux/arch/i386/kernel/traps.c
(2.1.85) -- it will kill with sigbus, and cause a kernel oops. I don't
think either of these cases will ever occour in userspace, however.
> > > Then how come netscape dumps core with a bus error on my 386 running Linux
> > > (when I try to access a Java Enables page)??
>
> Because it wants to?
> Because a SIGBUS doesn't involve a core dump?
>
[...]
> My only guess is that since SIGBUS doesn't trigger a core dump and SIGSEGV
> does, they avoid littering peoples' filesystems with gigantic corefiles
> (NS *is* big...).
And making it harder to reverse-engineer (=, annoyingly, fix). (Don't think
they need to worry about that anymore <G>!)
> > Are you using 2.0.x or 2.1.x ? I'll assume 2.0.x.
>
> With kill(), you can generate whatever signal you want :)
Under any kernel (linux or no), you can generate any signal. (On non-Linux
kernels, it might not get there due to security, but I don't know.)
> Not many. But Netscape on Solaris can exit with SIGBUS too.
Or non-intel Linux archs.
-=- James Mastros
-- "I'd feel worse if it was the first time. I'd feel better if it was the last." -=- "(from some Niven book, doubtless not original there)" (qtd. by Chris Smith)- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu