Sie können einen SIGBUS von einem nicht ausgerichteten Zugriff erhalten, wenn Sie die nicht ausgerichtete Zugriffsfalle einschalten, aber normalerweise ist das auf einem x86 ausgeschaltet. Sie können es auch erhalten, wenn Sie auf ein speicherabgebildetes Gerät zugreifen, wenn ein Fehler auftritt.
Am besten verwenden Sie einen Debugger, um die fehlerhafte Anweisung zu identifizieren (SIGBUS ist synchron), und versuchen zu sehen, was er versucht hat.
SIGBUS
kann unter Linux aus einigen anderen Gründen als Speicherausrichtungsfehlern auftreten - zum Beispiel, wenn Sie versuchen, auf mmap
zuzugreifen Bereich hinter dem Ende der zugeordneten Datei.
Verwenden Sie so etwas wie mmap
, gemeinsam genutzte Speicherbereiche oder ähnliches?