Я отлаживаю ошибку SIGSEGV на огромном приложении, работающем на Yocto / ARM64 (iMX8QM).
Если я запускаю приложение в GDB, я могу получить обратную трассировку:
Thread 1 "HmiAppCentral" received signal SIGSEGV, Segmentation fault.
0x0000000000b0a0d0 in kanzi::Node3D::~Node3D() ()
(gdb) bt
#0 0x0000000000b0a0d0 in kanzi::Node3D::~Node3D() ()
#1 0x0000000000cd4e44 in kanzi::Model3D::~Model3D() ()
#2 0x0000000000b09c38 in kanzi::Node3D::removeChild(unsigned long) ()
[...]
Затем я экспортирую дамп основной памяти, выхожу из GDB и перезапускаю его:
(gdb) generate-core-file
warning: target file /proc/2279/cmdline contained unexpected null characters
[...]
gdb -c core.2279
Затем GDB больше не может печатать обратную трассировку:
(gdb) bt full
#0 0x0000000000b0a0d0 in ?? ()
No symbol table info available.
#1 0x0000000000000001 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Адрес первого кадра является правильным (0x0000000000b0a0d0), однако GDB не может найти имя функции при перезагрузке дампа памяти. Любой намек?