在命令行中使用GDB時,我有時會在特定的代碼行中斷開。在那個斷點處,我可以調用函數,好像我的可執行程序包含該調用的。從GDB列出可調用的函數
我該如何讓GDB打印在給定斷點處可調用的所有可能函數的列表?
在命令行中使用GDB時,我有時會在特定的代碼行中斷開。在那個斷點處,我可以調用函數,好像我的可執行程序包含該調用的。從GDB列出可調用的函數
我該如何讓GDB打印在給定斷點處可調用的所有可能函數的列表?
您可以鍵入call
然後打<tab>
(直到列表顯示)。這似乎列出了二進制文件中包含的功能。
可調用函數的整個列表可能相當大。例如它包含了所有的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
由於某種原因選項卡不適用於我的Cygwin .... – Randomblue 2012-03-14 15:28:15
謝謝。標籤似乎不適用於我。 (我使用Cygwin。) – Randomblue 2012-03-14 15:28:33
可能有一些配置可以對Cygwin進行啓用。 [此頁面](http://sourcery.dyndns.org/wiki.cgi?CygwinTips)(ctrl + f tab完成)說明了如何在.inputrc文件中添加'\ t「:menu-complete'。 – douggard 2012-03-14 23:01:41