2012-03-14 3 views
2

Используя GDB в командной строке, я иногда разбиваюсь на определенную строку кода. В этой точке останова я могу вызывать функции , как если бы мой исполняемый код содержал вызов.Список вызываемых функций из GDB

Как я могу заставить GDB распечатать список всех возможных функций, вызываемых при заданной точке останова?

ответ

3

Вы можете набрать call и затем ударил <tab> (до образования списка дисплеев). Кажется, это список функций, содержащихся в двоичном формате.

+0

Спасибо. Tab, похоже, не работает для меня. (Я использую Cygwin.) – Randomblue

+0

Могут быть некоторые конфигурации, которые вы можете сделать для Cygwin, чтобы включить это. [Эта страница] (http://sourcery.dyndns.org/wiki.cgi?CygwinTips) (завершение ctrl + f) говорит о добавлении '' \ t ": menu-complete' в .inputrc-файл. – douggard

1

Весь список вызываемых функций может быть довольно большим. Например, он включает все функции libc. Вместо этого вы можете начать вводить имя функции и нажать клавишу Tab, чтобы получить более короткий список. Также обратите внимание, что глобальные переменные и имена файлов также будут перечислены вместе с функциями.

(gdb) call 'open 
open    open_memstream openat.c   opendir.c 
open64   open_path   openat64   [email protected] 
open64.c   open_socket  openat64.c  openlog 
[email protected]  open_translit  openaux   openlog_internal 
open64_2.c  open_verify  openaux_args  opensock.c 
open_2.c   open_wmemstream openchild.c  
open_catalog.c openat   opendir   
+0

По какой-то причине вкладка не работает на Cygwin для меня .... – Randomblue

Смежные вопросы