ソースブラウザは、プログラムの静的構造が記述されたデータベースから必要な情報を取得して検索を行います。ソースブラウズを行うためには、コンパイルコマンドかメークファイルに --xsb オプションを指定して、ソースブラウズ用のデータベースを作成しておく必要があります。
ブラウザの機能は、データベースの使用・不使用や、使用するデータベースの種類によって、少しずつ異なっています。
コンパイラ生成データベース |
すべてのブラウザ機能を利用可能 |
---|---|
タグ生成データベース |
関数や大域変数の問い合わせと、関数呼び出しの表示が可能 |
データベースなし |
「パターン検索」モードしか利用することができない |
コンパイラ生成データベースの代わりにタグ生成データベースを使用すると、次のような利点があります。
ソースコードが不完全であったり、構文上の誤りがあるためにソースコードをコンパイルできない場合でも、タグデータベースは生成される
タグデータベースは、コンパイラ生成データベースを生成するよりも短時間で生成される
タグデータベースは、コンパイラ生成データベースよりもサイズが小さい
ソースブラウザ用のオプションを指定してソースファイルをコンパイルすると、ファイルの情報を格納したデータベースが作成されます。ソースブラウザは、このデータベースを検索して問い合わせに応答します。
コンパイラ生成データベースを作成すると、すべてのブラウズ機能を利用することができます。
ブラウズ用データベースを生成するには、使用するメークファイルにソースブラウザ用オプションを指定します。
言語 |
ソースブラウザ用のオプション |
---|---|
C++ |
-xsb または -sb |
ANSI C |
-xsb |
FORTRAN 77 |
-xsb または -sb |
アセンブラ |
-b |
タグデータベースを使用すると、コンパイルを行わないで、簡単にソースファイルをブラウズすることができます。このデータベースは、ソースファイルの字句解析に基づいています。すべての言語の構造が正しく認識されるわけではありませんが、コンパイルすることができないファイルでも使用可能です。
ソースブラウズタグの形式は、ctag とは異なっています。ここで説明するタグは、ソースブラウズ専用の形式になっています。
タグデータベースを使用したブラウズには、次のような制限があります。
局所関数に関する問い合わせを発行することができない
クラスをブラウズすることができない
複雑な問い合わせを行う機能に制限がある
問い合わせをフォーカスする機能に制限がある
タグデータベースは、変数、型、関数の大域的な定義のみを認識し、関数呼び出しに関する情報を収集します。C++ のメンバーに対する関数呼び出しは、明示的に呼び出された場合に限り認識されます。
タグデータベースを作成する場合は、次の手順に従ってください。
「ブラウズ」ウィンドウで、「ブラウズ」⇒「タグデータベース作成」を選択します。
「タグデータベース作成」ダイアログボックスで、「了解」ボタンをクリックしてデフォルトのファイルフィルタを適用するか、検索対象ファイルの型を入力して 「了解」をクリックします。
タグデータベースが作成されます。
ソースファイルが複数のディレクトリに保存されている場合、それぞれのディレクトリでコンパイル処理を行うことになります。このため、ディレクトリごとに別々のソースブラウザが生成されます。
1 回のブラウズで検索されるデータベースは 1 つだけなので、現在のディレクトリにあるファイルしか検索されません。このデフォルト設定を変更するためには、データベースをインポートする必要があります。
複数のデータベースを、マージしないでインポートすることができます。sb_init ファイルを使用して複数のデータベースを読み込むと、このファイルが収められているディレクトリをブラウズすることができます。
データベースをインポートする場合は、次の手順に従ってください。
sb_init ファイルの格納場所を指定します。
コンパイル処理を行う各ディレクトリの sb_init ファイルに import コマンドを追加します。
import absolute_or_relative_pathname
absolute_or_relative_pathname には、パス名 (絶対パスまたは相対パス) を指定します。
SUNPRO_SB_INITFILE_NAME 環境変数に sb_init ファイルを設定します。
setenv SUNPRO_SB_INIT_FILE_NAME path to sb_init file/sb_init
path to sb_init file には、sb_init ファイルが入っているディレクトリのパスを指定します。
ソースツリー全体のソースファイルを検索したり、データベースをブラウズしたい場合には、インポートオプションを指定します。ソースツリー内の各ディレクトリの sb_init ファイルに import コマンドを追加してください。
sb_init ファイルは、パターン検索モードで、複数のディレクトリからソースファイルを検索する場合や、ソースブラウズモードで、複数のディレクトリからブラウザデータベース (オブジェクトファイルを保存) を検索する場合に使用します。このため、sb_init ファイルに import コマンドを指定して、ソースディレクトリとオブジェクトディレクトリの両方を検索することもできます。