Интернет магазин китайских планшетных компьютеров



Компьютеры - SIGBUS

27 мая 2011





В POSIX-системах, сигнал, сигнализирующий об ошибке шины, при обращении к физической памяти.

SIGBUS — целочисленная константа, определённая в заголовочном файле signal.h. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.

Этимология

SIG — общий префикс сигналов, BUS — англ. bus — шина данных.

Использование

Процесс может получить SIGBUS при неправильном обращении к памяти:

Неправильное выравнивание данных
При попытке обращения не удовлетворяющей правилам выравнивания принятым на применяемом процессоре.
Обращение к несуществующей физической памяти
Обращение к адресам, для которых на компьютере не установлено памяти. Исключение аналогично ошибке сегментации, но в применении к физическим, а не виртуальным адресам.
Аппаратная ошибка специфичная объекту
Более редкий случай, например в Solaris такой сигнал возникает, когда страницы виртуальной памяти перестают быть доступны, из-за проблем доступа к объекту, который на них отображён файл был впоследствии урезан ).

Операционная система может предоставить дополнительные данные о возникшей ошибке, используя стек сигнала, который может помочь разработчику в отладке данной ошибки.

По умолчанию, процесс аварийно завершается с генерацией дампа памяти, который можно использовать для получения информации об условиях возникновения исключения.

SIGBUS может быть перехвачен или проигнорирован. Однако игнорирование SIGBUS, в некоторых случаях, может привести к непредсказуемым результатам. Примером программы, перехватывающей SIGBUS, может служить отладчик, который способен проанализировать стек и информировать разработчика на каком этапе произошла ошибка.

Сигналы POSIX
SIGABRT | SIGALRM | SIGFPE | SIGHUP | SIGILL | SIGINT | SIGKILL | SIGPIPE | SIGQUIT | SIGSEGV | SIGTERM | SIGUSR1 | SIGUSR2 | SIGCHLD | SIGCONT | SIGSTOP | SIGTSTP | SIGTTIN | SIGTTOU | SIGBUS | SIGPOLL | SIGPROF | SIGSYS | SIGTRAP | SIGURG | SIGVTALRM | SIGXCPU | SIGXFSZ |

Сигналы реального времени — SIGRTMIN — SIGRTMAX.

Некоторые сигналы не включенные в POSIX и синонимы
SIGIOT | SIGEMT | SIGSTKFLT | SIGIO | SIGCLD | SIGPWR | SIGLOST | SIGWINCH | SIGUNUSED


Просмотров: 1027


<<< SIGCHLD