Последовательность байтов 0xF 0xB
- это код операции UD2
.
Это определенная «Неопределенная инструкция», если это имеет смысл: есть много возможных кодов операций, которые не являются допустимыми, но этотспециально зарезервировано как инструкция, которая гарантированно вызывает #UD
недопустимое исключение кода операции, даже на будущих процессорах.
Существует одна (и я могу думать только об одной) неопределенно вероятная причина, по которой это может быть намеренно выполняется кодом: встроенная в GCC __builtin_trap()
генерирует инструкцию UD2
на x86, и я иногда видел, что она используется вместо abort()
, чтобы вызвать фатальную ошибку, которая будет обнаруженаотладчик.