別のアプローチ。Vim などを使用している場合は、コードに対して cscope を実行します。
たとえば、cscope トリガーとしてCtrl+があります。\私が関数にいる場合:
01 #define SOME_BLAH 33
02
03 void foo() {
04 printf("%d\n", SOME_BLAH); /* <- cursor on SOME_BLAH;
05 trigger + G jumps to line 1 */
06 }
07
08 void bar() {
09 foo(); /* <- Cursor on foo I hit trigger, G and I jump to line 3 */
10 }
同様に、このようにファイル間、インクルード、特定の関数を呼び出す関数のリスト、関数が呼び出している関数のリスト、ファイルを含むファイルのリスト、変数が定義されている場所へのジャンプなどをジャンプできます。すべて数回のキーストロークで実行できます。
すべてのジャンプは LIFO スタックに追加されCtrlt、最後のジャンプ先コマンドを入力した場所に戻ります。
さらに ie を追加するTaglist
と、ウィンドウの横にリストが表示され、すべての定義、変数、関数などがリストに並べられます。
もう 1 つのオプションは、ie でコードをコンパイルし、-ggdb
Code::Blocks のような IDE で実行し、DDD などを使用して、プロセスとして実行するときにコードをステップ実行することです。かなり教育的です。