Как сопоставить информацию в ошибке сегментации со строкой в ​​исходном коде? - PullRequest
1 голос
/ 06 февраля 2020

Я получаю ошибку сегментации (Address not found). Результат, который я получаю, выглядит примерно так:

#3    Object "/some/dir/bin/myProject", at 0x415526, in 
#2    Object "/some/dir/bin/myProject", at 0x40d3f9, in 
#1    Object "/some/dir/bin/myProject", at 0x409b1a, in 
#0    Object "/lib64/libpthread.so.0", at 0x7f9a82a78cd0, in pthread_mutex_lock

Я хотел бы знать, какой команде переводятся позиции в myProject.cpp. Как я могу это сделать?

Причина, по которой я не проверяю это с помощью gdb, заключается в том, что эта ошибка вызвана тем, как несколько потоков обмениваются данными, а вмешательство человека вводит так много времени ожидания, что эта ошибка не возникает. Ошибка также sporadi c ...

Дополнительный вопрос:

Насколько я понимаю, ошибка Address not found заключается в том, что это, вероятно, вызвано разыменованием nullprt или попыткой доступа к контейнер в неправильном месте. Вы согласны?

РЕДАКТИРОВАТЬ

Спасибо за предложение отладки файлов дампа ядра. Проблема заключается в следующем: при возникновении этой ошибки программа не обрабатывает sh! Ошибка (или аналогичная) выводится на консоль, и программа зависает (многопоточность снова ...). Он не заканчивается, поэтому я предполагаю, что нет файлов дампа (поправьте меня, если я ошибаюсь!). Я не смог найти ни одного ...

...