Я согласен со всеми ответами выше. Вот мои 2 цента относительно ошибки шины:
Ошибка BUS не должна возникать из инструкций в коде программы. Это может произойти, когда вы запускаете двоичный файл и во время выполнения двоичный файл изменяется (перезаписывается сборкой или удаляется и т. Д.).
Проверка, так ли это:
Простой способ проверить, является ли это причиной, - запустить запущенные экземпляры одного и того же двоичного файла и запустить сборку. Оба запущенных экземпляра вылетят с ошибкой SIGBUS
вскоре после завершения сборки и заменит двоичный файл (тот, который в данный момент запущен обоими экземплярами)
Основная причина:
Это происходит потому, что ОС меняет местами страницы памяти, а в некоторых случаях весь двоичный файл может находиться в памяти, и эти сбои происходят, когда ОС пытается извлечь следующую страницу из того же двоичного файла, но двоичный файл изменился с момента последнего чтения. 1012 *