Interested Article - SIGILL
- 2020-08-12
- 1
В POSIX -системах, SIGILL — сигнал , посылаемый процессу при попытке выполнить неправильно сформированную, несуществующую или привилегированную инструкцию.
SIGILL — целочисленная константа, определенная в заголовочном файле
signal.h
. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.
Этимология
SIG — общий префикс сигналов (от англ. signal ), ILL — сокращенное написание англ. illegal instruction — недопустимая инструкция.
Использование
Существует много причин для SIGILL. Одна из наиболее частых причин — передача управления в случайное место памяти — в результате передачи управления через неинициализированный или повреждённый указатель (или адрес возврата в стеке). Другие случаи возможны при ошибках компилятора, повреждении файловой системы или попытке выполнения инструкции, требующей специальных привилегий.
На многих платформах, по мере развития оборудования внедряются новые инструкции, регистры и т. п. и приложения, собранные для современного оборудования могут содержать инструкции, не распознающиеся на более старом оборудовании. Например, SIGILL возникнет при попытке выполнить инструкции MMX на процессоре i486 , который их не поддерживает.
SIGILL может быть перехвачен или проигнорирован. Однако игнорирование SIGILL, в некоторых случаях, может привести к непредсказуемым результатам.
- 2020-08-12
- 1