Интерпретация segfault сообщения

Какова корректная интерпретация следующих сообщений segfault?

segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in libQtWebKit.so.4.5.2[7f9beb83a000+f6f000]
segfault at 10 ip 00007fa44d78890d sp 00007fff43f6b720 error 4 in libQtWebKit.so.4.5.2[7fa44d2f8000+f6f000]
segfault at 11 ip 00007f2b0022acee sp 00007fff368ea610 error 4 in libQtWebKit.so.4.5.2[7f2aff9f7000+f6f000]
segfault at 11 ip 00007f24b21adcee sp 00007fff7379ded0 error 4 in libQtWebKit.so.4.5.2[7f24b197a000+f6f000]
53
задан knorv 30 March 2010 в 11:40
поделиться

1 ответ

Это ошибка сегментации, связанная с попыткой отслеживания нулевого указателя найти код для выполнения (то есть во время выборки инструкции).

Если это была программа, а не разделяемая библиотека

Запустите addr2line -e yourSegfaultingProgram 00007f9bebcca90d (и повторите для других заданных значений указателя инструкций), чтобы увидеть, где происходит ошибка. Лучше получить сборку с отладкой и воспроизвести проблему в отладчике, таком как gdb.

Поскольку это общая библиотека

Вы, к сожалению, забиты; постфактум невозможно узнать, где библиотеки были помещены в память динамическим компоновщиком. Воспроизведите проблему в gdb .

Что означает ошибка

Вот разбивка полей:

  • адрес (после в ) - место в памяти, к которому код пытается получить доступ (вероятно, что 10 и 11 - это смещения от указателя, который, как мы ожидаем, будет установлен на допустимое значение, но который вместо этого указывает на 0 )
  • ip - указатель инструкции, т.е.где код, который пытается это сделать, живет
  • sp - указатель стека
  • ошибка - код ошибки для ошибок страницы; см. ниже, что это означает для x86.

     / * 
     * Биты кода ошибки страницы: 
     * 
     * бит 0 == 0: страница не найдена 1: ошибка защиты 
     * бит 1 == 0: доступ для чтения 1: доступ для записи 
     * бит 2 == 0: доступ в режиме ядра 1: доступ в режиме пользователя 
     * бит 3 == 1: обнаружено использование зарезервированного бита { {1}} * бит 4 == 1: ошибка была при выборке инструкции 
     * / 
     
87
ответ дан 7 November 2019 в 08:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: