Puoi ottenere un SIGBUS da un accesso non allineato se attivi la trappola dell'accesso non allineato, ma normalmente è disattivata su un x86. Puoi anche ottenerlo accedendo a un dispositivo mappato in memoria se c'è un errore di qualche tipo.
La soluzione migliore è utilizzare un debugger per identificare l'istruzione in errore (SIGBUS è sincrono) e provare a vedere cosa stava cercando di fare.
SIGBUS
può accadere in Linux per diversi motivi diversi dagli errori di allineamento della memoria, ad esempio se si tenta di accedere a un mmap
regione oltre la fine del file mappato.
Stai usando qualcosa come mmap
, regioni di memoria condivisa o simili?