2016-03-30 15 views
0

いくつかの大きなC++プロジェクトを分析しています。本当に必要な機能は、関数呼び出しを見つけることだけです。C++コードの解析 - CSCope

これは私が今はcscopeを使用していますが、大きな問題が1つ見つかりました。つまり、cscopeはメソッドを見つけることができません。 object.function()

cscopeの設定を何とか変更することはできますか?あるいは、C++をcscopeで実現可能な方法で解析できない場合は、他のパーサーをお勧めしますか?これは「優れた」ものですか?


私はこのように、単にできるだけcscopeを使用しています:私は別にデータベースを作成していないよ

cscope -k -L3importantFunc path_to_some_file 

、私はそれがある特定のファイルについては、この方法で十分であるべきだと思います。


私はすでにクランを試みたが、条件付きコンパイルブロックで囲まれた機能を探すことはできませんので、それは、はるかに良いではなかったです。

+0

https://github.com/Andersbakken/rtags –

+2

野生の推測として、問題はcscopeのは、C言語ではなくCを解析するためであることが考えられ++? –

+0

ソースコードを解析する前にプリプロセッサを実行すると、プリプロセッサの条件ブロックが不安定になります。無効なPP条件ブロック内で関数呼び出しを探したいですか?条件付きブロックが関数のヘッダー行に折り返された場合はどうなりますか?それが引数リストの一部にラップされるとどうなりますか? –

答えて

0

(無料コミュニティ版)Visual Studio 2013/2015でプロジェクトを読み込むことをお勧めします。ナビゲーション/ソースブラウジングの方がはるかに優れています。ソースコードを索引付けすることは非常に高速です。&

https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/

+0

これはGCC/Clang互換コードで動作しますか?私はそうは思わない。 [OPにはC++のどんな方言がありますか?] OPがリストを作るほどコードをナビゲート*したいことは明らかではありません。 OPは私たちに教えてください。 –

+0

gcc?標準のC/C++構文であれば、それをすべて解析することができます。 –

+0

「標準」C/C++構文を書いている人は誰もいません。何とか、どこかで方言に固有の何かが常に忍び寄る。 –