在命令行中使用GDB,我有时会破坏某一行代码。在那个断点处,我可以调用函数,好像我的可执行文件包含了这个调用。
如何让GDB打印在给定断点处可调用的所有可能函数的列表?
答案 0 :(得分:3)
您可以输入call
,然后点击<tab>
(直到显示列表)。这似乎列出了二进制文件中包含的函数。
答案 1 :(得分:1)
可调用函数的整个列表可能相当大。例如,它包括所有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