2012-03-14 19 views
2

コマンドラインでGDBを使用すると、特定のコード行でブレークすることがあります。そのブレークポイントで、関数を呼び出して、の実行ファイルに呼び出しが含まれているかのように呼び出すことができます。GDBから呼び出し可能な関数を一覧表示

特定のブレークポイントで呼び出し可能なすべての関数のリストをGDBに出力するにはどうすればよいですか?

答えて

3

あなたはcallを入力し、(リストが表示されるまで)<tab>を打つことができました。これは、バイナリに含まれている関数をリストしているようです。

+0

ありがとうございました。タブは私のために働いていないようです。 (私はCygwinを使用しています) – Randomblue

+0

これを有効にするためにCygwinにできる設定がいくつかあります。 [このページ(http://sourcery.dyndns.org/wiki.cgi?CygwinTips)(ctrl + fタブの補完)では、.inputrcファイルに '' \ t ":menu-complete'を追加する方法について説明しています。 – 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

関連する問題