Anda bisa mendapatkan SIGBUS dari akses yang tidak selaras jika Anda mengaktifkan jebakan akses yang tidak selaras, tetapi biasanya itu tidak aktif pada x86. Anda juga bisa mendapatkannya dari mengakses perangkat yang dipetakan memori jika ada semacam kesalahan.
Taruhan terbaik Anda adalah menggunakan debugger untuk mengidentifikasi instruksi yang salah (SIGBUS sinkron), dan mencoba melihat apa yang coba dilakukannya.
SIGBUS
dapat terjadi di Linux karena beberapa alasan selain kesalahan penyelarasan memori - misalnya, jika Anda mencoba mengakses mmap
wilayah di luar akhir file yang dipetakan.
Apakah Anda menggunakan sesuatu seperti mmap
, wilayah memori bersama, atau serupa?