2011-12-07 28 views
5

私はポインタを返す関数を持っています:GDBでブレークポイントを設定する

static void * find_fit(size_t asize);

私は、GDBでブレークポイントを設定したいと思いますが、私は、この関数名を入力すると、私はこれらのいずれかのエラーを取得:

ブレーク*のfind_fit機能「* find_fitは」定義されていない

または

ブレークfind_fit機能「find_fitは」私は簡単にポインタ以外の何かを返す関数にブレークポイントを設定することができ

を定義していないが、関数のポインタを返すない場合、GDBは上壊したくていないようですそれ。

誰も何が起こっているのを見ますか?ありがとう!

+0

どのような言語ですか? C? C++? – smparkes

+0

申し訳ありません。 C++ kkkkkkkkkkkkkkk – Alex

答えて

4

何らかの理由でgdbがC++名のマングリングを正しく処理していないように思えます。通常は、これを動作させるために何かに触れる必要はありません。あなたはshow languageを試すことができます。通常はautoに設定されています。 set language c++で手動で設定することもできます。テストするには

、あなただけ

b 'find<tab> 

を入力することができます(つまり、タブ文字ではなく、文字「<tab>」だ)、それはあなたのための関数の名前を自動補完してみてください。 C++では、関数を知るために引数の型が必要ですが、gdbに引数なしで関数名を与えると、通常正しいことをしたりあなたが望む機能のバージョン。あなたはそれらのいずれかを見ていません。

関連する問題