Мы получаем файлы ядра при запуске нашего программного обеспечения на компьютере Заказчика. К сожалению, поскольку мы всегда компилировали с параметром -O2 без символов отладки , это приводило к ситуациям, когда мы не могли понять, почему происходит сбой, поэтому мы модифицировали сборки, так что теперь они генерируют -g и -O2. вместе. Затем мы советуем клиенту запустить двоичный файл -g, чтобы упростить отладку.
У меня есть несколько вопросов:
Вот пример сбоя, который требует, чтобы мы сказали Заказчику получить -g ver. из бинарного файла:
Program terminated with signal 11, Segmentation fault.
#0 0xffffe410 in __kernel_vsyscall ()
(gdb) where
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x00454ff1 in select () from /lib/libc.so.6
...
<omitted frames>
В идеале я хотел бы выяснить, почему именно приложение разбилось - я подозреваю, что это повреждение памяти, но я не уверен на 100%.
Удаленная отладка строго запрещена.
Спасибо