cscopeを使用して、C++ ソース コードのインデックスを作成しています。ほとんどの場合、うまく機能しますが、スコープが設定されたパラメーター型 (「::」を使用) を持つ関数名を解析するときに問題があります。例えば:
void SomeClass::doSomethingAwesome( const std::string& input )
{
}
cscope インターフェイスを使用して「この C シンボルを検索:」すると、次のようになります。
File Function Line
0 doSomethingAwesome <global> 1 void SomeClass::doSomethingAwesome( const std::string& input )
重要なのはグローバルタグです。「doSomethingAwesome」である必要があります。
スコープ付きパラメーターのない別の関数の場合
void SomeClass::doSomethingElse( int input )
私はこれを得る:
File Function Line
0 doSomethingElse doSomethingElse 1 void SomeClass::doSomethingElse( int input )
Function フィールドが関数名と一致することに注意してください。この関数を呼び出す他の関数を cscope で正常に検索できるようになりました。doSomethingAwesome() ではそれができませんでした。さらに、doSomethingAwesome() が cscope によって関数として認識されないため、doSomethingAwesome()からのみ呼び出される関数は、どの関数からも呼び出されたものとして表示されません。
私は何か間違ったことをしていますか?それとも、cscope による関数の解析の問題ですか?