LINUX.ORG.RU

Как перейти на другую функцию по стеку вызовов?

 , ,


0

1

Моя программа упала и оставила coredump. Я его загрузил в GDB и он мне показал такой стек вызовов:

#0  0x0000000000401da4 in std::_Bit_iterator_base::_Bit_iterator_base (
    this=0x7fffbdc22080, __x=0x250d868, __y=56)
    at /usr/include/c++/4.6/bits/stl_bvector.h:116
#1  0x0000000000401eed in std::_Bit_iterator::_Bit_iterator (
    this=0x7fffbdc22080, __x=0x250d868, __y=56)
    at /usr/include/c++/4.6/bits/stl_bvector.h:196
#2  0x0000000000402406 in std::vector<bool, std::allocator<bool> >::operator[]
    (this=0x7fffbe41f320, __n=266616)
    at /usr/include/c++/4.6/bits/stl_bvector.h:692
#3  0x0000000000401348 in Graph::recPass (this=0x7fffbe41f3d0, vis=..., 
    ft=..., vIdx=3552607) at scc.cpp:231
--------------------------8-<--------------------------

Как можно просмотреть значения локальных переменных в функции Graph::recPass (#3 в стеке)? Команда info locals выдаёт только переменные из функции, которая вызвала исключение (#0). Ещё я пробовал

(gdb) print linked
No symbol "linked" in current context.
Хотя эта переменная точно определена в функции #3 в стеке.


Команда frame N (где N=номер функции в стеке) меняет контекст.

mors
() автор топика

(gdb) f номер_в_стеке.

O02eg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.