Vous pouvez obtenir un SIGBUS à partir d'un accès non aligné si vous activez le piège d'accès non aligné, mais normalement, il est désactivé sur un x86. Vous pouvez également l'obtenir en accédant à un périphérique mappé en mémoire en cas d'erreur quelconque.
Votre meilleur pari est d'utiliser un débogueur pour identifier l'instruction défaillante (SIGBUS est synchrone) et d'essayer de voir ce qu'il essayait de faire.
SIGBUS
peut se produire sous Linux pour plusieurs raisons autres que des défauts d'alignement de la mémoire - par exemple, si vous essayez d'accéder à un mmap
région au-delà de la fin du fichier mappé.
Utilisez-vous quelque chose comme mmap
, régions de mémoire partagée ou similaire ?