Debugging SIGBUS on x86 Linux
You can get a SIGBUS from an unaligned access if you turn on the unaligned access trap, but normally that's off on an x86. You can also get it from accessing a memory mapped device if there's an error of some kind.
Your best bet is using a debugger to identify the faulting instruction (SIGBUS is synchronous), and trying to see what it was trying to do.
SIGBUS
can happen in Linux for quite a few reasons other than memory alignment faults - for example, if you attempt to access an mmap
region beyond the end of the mapped file.
Are you using anything like mmap
, shared memory regions, or similar?