Что означает «ПК: @0x0 (неизвестно)»? [дубликат]Linux

Ответить
Anonymous
 Что означает «ПК: @0x0 (неизвестно)»? [дубликат]

Сообщение Anonymous »

Я обнаружил ошибку segfault в своей программе, работающей в системе Rocky Linux X86_64. Обычно в этом случае программа печатает информацию о стеке. А его нет, только сообщение "ПК:@0x0 (неизвестно)"? Что это значит?
Также я вижу следующие строки, используя команду 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»