Чтобы немного расширить ответ от Marc (Марк, не стесняйтесь включать это в свой, и я удалю этот ответ), это указано в разделе 7.8 спецификации:
предопределенные операторы сдвига перечислены ниже.
Сдвиг влево:
. & lt; оператор смещает x слева на число бит, вычисленное, как описано ниже.
Биты высокого порядка вне диапазона результата результата x отбрасываются, остальные биты сдвигаются влево, а младшие разряды пустые позиции битов установлены на ноль.
Сдвиг вправо:
Оператор >> сдвигает x справа на число бит, вычисленное, как описано ниже.
Когда x имеет тип int или long, младшие биты x отбрасываются оставшиеся биты сдвигаются вправо, а старшие разряды старшего разряда устанавливаются на ноль, если x неотрицательно и устанавливается в единицу, если x отрицательно.
Когда x имеет тип uint или ulong , младшие разряды x отбрасываются, остальные биты сдвигаются вправо, а позиции пустого разряда высокого порядка устанавливаются на ноль.
Для предопределенных o число бит для сдвига вычисляется следующим образом:
Когда тип x является int или uint, счетчик сдвига задается младшими пятью битами счета. Другими словами, подсчет сдвига вычисляется из count & amp; 0x1F.
Когда тип x длинный или ulong, счетчик сдвига задается шестью битами младшего порядка. Другими словами, подсчет сдвига вычисляется из count & amp; 0x3F.
Если итоговое значение сдвига равно нулю, операторы сдвига просто возвращают значение x.
Сначала вам нужно установить kernel-debug-devel, kernel-debuginfo, kernel-debuginfo-common для соответствующей версии ядра. Затем вы можете использовать утилиту аварийного отключения для отладки ядра, которое внутренне использует gdb