SIGBUS | |
---|---|
Описание | Сигнал ошибки шины |
По умолчанию | завершение с дампом памяти |
Коды SA_SIGINFO | |
Не имеет специфических кодов |
В POSIX-системах, SIGBUS — сигнал, сигнализирующий об ошибке шины, при обращении к физической памяти.
SIGBUS
— целочисленная константа, определённая в заголовочном файле signal.h
. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.
SIG — общий префикс сигналов (от англ. signal), BUS — англ. bus — шина данных (или адресная шина).
Процесс может получить SIGBUS при неправильном обращении к памяти:
mmap()
файл был впоследствии урезан [1] Архивная копия от 16 июля 2010 на Wayback Machine (англ.)).Операционная система может предоставить дополнительные данные о возникшей ошибке, используя стек сигнала (англ. signal stack), который может помочь разработчику в отладке данной ошибки.
По умолчанию, процесс аварийно завершается с генерацией дампа памяти (и/или другой операции зависящей от платформы), который можно использовать для получения информации об условиях возникновения исключения.
SIGBUS может быть перехвачен или проигнорирован. Однако игнорирование SIGBUS, в некоторых случаях, может привести к непредсказуемым результатам. Примером программы, перехватывающей SIGBUS, может служить отладчик, который способен проанализировать стек и информировать разработчика на каком этапе произошла ошибка.