Также я вижу следующие строки, используя команду dmesg -T:
Код: Выделить всё
[Tue Jul 30 08:00:01 2024] segfault at 38 ip 000000000094d8bb sp 00007fff26fdebc0 error 4 in my_program[400000+ea5000]
[Tue Jul 30 08:00:01 2024] Code: 68 48 29 f9 48 c1 f9 03 49 0f af c8 48 39 ce 73 19 48 89 f1 48 c1 e1 04 48 01 ce 4c 8d 2c f7 66 41 3b 55 10 0f 84 04 fe ff ff b7 04 25 38 00 00 00 0f 0b 0f 1f 00 0f b7 16 66 3b 97 f4 00 00
Интерпретация сообщений о сегфолте.
Но у меня все еще есть несколько вопросов:
- Похоже, что расчет смещения отличается на разных платформах Linux.
< li>В приведенной выше строке кода инструкция вызывает segfault: 0f b7 04 25 38 00 00, что преобразуется в movzwl 0x38 %eax, что инструктирует просто поместить немедленное число в регистр %eax, там не происходит разыменования, не используется чтение/запись памяти, почему это может вызвать ошибку segfault?
Подробнее здесь: https://stackoverflow.com/questions/788 ... known-mean
Мобильная версия