@q27off

Ошибка чтения по нулевому указателю. Можно ли закостылять?

Здравствуйте.

Имеется приложение для ОС Linux, написанное на C, компилируемое с помощью GCC. Предельно редко, когда раз в неделю, когда раз в месяц, приложение завершается с ошибкой чтения по нулевому указателю (dmesg: error 4).

Полностью отсутствует желание искать данную ошибку valgrind'ом. Потому что во-первых - долго, а во-вторых, как известно, под valgrind'ом производительность программ резко снижается. Поиском баги можно заниматься до второго пришествия.

Вопрос. Можно ли как-либо разрешить чтение по нулевому указателю? Например, с помощью флагов компиляции либо еще как-то?

Можно ли сообщения dmesg сделать более информативными? Чтобы хотя бы получить имя функции, в которой происодит ошибка? Пока я имею вот такое описание:
spoiler
[304600.838283] myprog[24544]: segfault at 2be8c000 ip 000000000047ccf8 sp 00007fff2b486a60 error 4 in myprog[400000+271000]


PS Искать проблему strace'ом в данном случае тоже не хочется, но возможно придется :)
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
@dmtrrr
Backend developer
Получить coredump и открыть его в gdb
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы