すでに述べたとおり、cscope はデフォルトでは現在のディレクトリ内にある C、lex、および yacc ソースファイルのシンボル相互参照表を作成します。次に例を示します。
% cscope
これは次と同義です。
% cscope *.[chly]
指定したソースファイルを表示するには、ソースファイル名を引数に指定して cscope を起動します。
% cscope file1.c file2.c file3.h
cscope のコマンド行オプションを使用して、相互参照表に含まれるソースファイルをさらに自由に指定することもできます。それには、次のように -s オプションのあとにコンマで区切られた任意の数のディレクトリ名を指定して cscope を起動します。
% cscope– s dir1,dir2,dir3
cscope は現ディレクトリ内だけでなく、指定されたディレクトリ内にあるすべてのソースファイルを対象に相互参照表を作成します。ファイル中にリストされているソースファイル (ファイル名をスペースやタブまたは復帰改行で区切ったもの) のすべてを表示するには、– i オプションとリストを持つファイル名を指定して cscope を起動します。
% cscope– i file
ソースファイルがディレクトリツリーの中にある場合は、次のコマンドでディレクトリツリー内のすべてのソースファイルを簡単に表示できます。
% find .– name ’*.[chly]’– print | sort > file % cscope– i file
このオプションを使用しても、コマンド行でファイルが指定されている場合、cscope によって指定されたファイル以外については無視されます。
-I オプションは、cc に対する -I オプションと同じような形式で cscope にも指定できます。インクルードファイルを指定する方法を参照してください。
– f オプションを使用すると、デフォルトの cscope.out 以外のファイルを相互参照ファイルとして指定できます。このオプションは、同じディレクトリ内に異なるシンボル相互参照ファイルを保管するのに役立ちます。たとえば、2 つのプログラムが同じディレクトリ内にあるが、すべてのファイルを共有しているとは限らない場合に使用します。
% cscope– f admin.ref admin.c common.c aux.c libs.c % cscope– f delta.ref delta.c common.c aux.c libs.c
この例では、2 つのプログラム admin と delta のソースファイルは同じディレクトリ内にありますが、プログラムを構成するファイルのグループは異なっています。cscope 起動時に、別のシンボル相互参照ファイルを指定しておくことによって、2 つのプログラムの相互参照情報を別々に保管できます。
– pn オプションを使用すると、cscope は検索結果でリストされたファイルのあるパス名やそのパス名の一部を表示することができます。– p のあとの n には、パス名の中で最後から何番目までの要素を表示させたいかを指定します。デフォルト値は 1 で、これはファイル名そのものを意味します。したがって現在のディレクトリが home/common の場合、次のコマンドでは:
% cscope– p2
cscope によって検索結果がリストされるときに、common/file1.c や common/file2.c のように表示されます。
表示するプログラムが大量のソースファイルを含む場合、– b オプションを使用して、相互参照表を作成したあとで cscope を終了することができます。このとき、cscope はタスクメニューを表示しません。パイプラインで、cscope– b を batch(1) コマンドとともに使用する場合、cscope は相互参照表をバックグラウンドで作成します。
% echo ’cscope -b’ | batch
相互参照表がいったん作成されると、その後、ソースファイルまたはソースファイルのリストを変更しないかぎり、次のように指定するだけで
% cscope
相互参照表がコピーされ、通常どおりタスクメニューが表示されます。このコマンドシーケンスを使用すると cscope の初期処理の終了を待たずに作業を続けることができます。
– d オプションは、cscope にシンボル相互参照表を更新させません。このオプションを指定すると、cscope はソースファイルの変更を検査しないため時間の節約になります。変更されていないと確信できる場合にのみ使用してください。