Puede obtener un SIGBUS de un acceso no alineado si activa la trampa de acceso no alineado, pero normalmente está desactivada en un x86. También puede obtenerlo accediendo a un dispositivo asignado a la memoria si hay algún tipo de error.
Su mejor apuesta es usar un depurador para identificar la instrucción que falla (SIGBUS es síncrono) e intentar ver qué estaba tratando de hacer.
SIGBUS
puede ocurrir en Linux por varias razones además de las fallas de alineación de la memoria, por ejemplo, si intenta acceder a un mmap
región más allá del final del archivo mapeado.
¿Estás usando algo como mmap
? , regiones de memoria compartida o similar?