【发布时间】:2012-03-14 14:27:22
【问题描述】:
在命令行上使用 GDB,我有时会在某行代码处中断。在那个断点,我可以调用函数好像我的可执行文件包含调用。
如何让 GDB 打印在给定断点处可调用的所有可能函数的列表?
【问题讨论】:
在命令行上使用 GDB,我有时会在某行代码处中断。在那个断点,我可以调用函数好像我的可执行文件包含调用。
如何让 GDB 打印在给定断点处可调用的所有可能函数的列表?
【问题讨论】:
您可以输入call,然后点击<tab>(直到显示列表)。这似乎列出了二进制文件中包含的函数。
【讨论】:
"\t":menu-complete 添加到 .inputrc 文件的内容。
可调用函数的整个列表可能相当大。例如,它包括所有 libc 函数。相反,您可以开始输入函数名称并按Tab 键以获取更短的列表。另请注意,全局变量和文件名也将与函数一起列出。
(gdb) call 'open
open open_memstream openat.c opendir.c
open64 open_path openat64 opendir@plt
open64.c open_socket openat64.c openlog
open64@plt 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
【讨论】: