Я отлаживаю ошибку сегментации из файла ядра и пытаюсь получить как можно больше информации.Ниже приведен фрагмент моей команды bt
.
(gdb) bt
#0 0x00000000007d4cf1 in alloc_real (vv=0x7f259e9bed20, drop_ssr=false) task_remove.c:2350
#1 0x00000000007d54f8 in ssr_unalloc (vv=0x7f259e9bed20, skip_tree=1 '\001', remove_from_sysmgr=0 '\000') at task_remove.c:2541
#2 0x00000000007e5afb in remove_done (vv=0x7f259e9bed20, status=TE_PASS, multiple_ssr=2) at task_remove.c:7058
#3 0x00000000007ee0f4 in remove_callback (task=0x7f259e9e27d0) at task_remove.c:8790
#4 0x00000000006fe4d5 in proc (arg=0x7f259e9e27d0) at smtproc.c:140
#5 0x00007f25a2cab637 in ?? ()
#6 0x00007f25a55ed998 in ?? ()
С bt
Я могу знать, что программа завершилась ошибкой в task_remove.c:2350
во время выполнения строки № 2350 функции alloc_real
.Код для 'alloc_real'
имеет несколько других вызовов функций, которые прошли и, следовательно, удалены из стека.
Мой вопрос таков: есть ли способ / механизм для получения bt
из frame 0
или, другими словами, всех функций, вызываемых 'alloc_real
' с использованием gdb.