ソースブラウズモードでは、関数、クラス、構造体、共用体、レコードなどの言語要素や、その使用方法、定義、割り当て個所を検索することができます。また、関数呼び出しの関係やクラス階層をグラフ表示したり、クラスのデータやメンバー関数を検査することもできます。
ソースブラウザは、プログラムの静的構造が記述されたデータベースから必要な情報を取得して検索を行います。ソースブラウズを行うためには、コンパイルコマンドかメークファイルに --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 コマンドを指定して、ソースディレクトリとオブジェクトディレクトリの両方を検索することもできます。
図 3-3 に、ソースブラウズモードの「ブラウズ」ウィンドウを示します。ウィンドウの他の構成要素については、図 3-1 を参照してください。

|
「一致」リスト |
問い合わせる項目にフィルタを設定し、特定の使用例だけを検索することができます。選択可能な型には次のものがあります。 |
|
|
「一致するもの全部」 指定した項目に一致する項目をすべて表示 |
|
|
「指定項目の参照」 指定した項目の参照をすべて表示 |
|
|
「指定項目の定義」 指定した項目の定義をすべて表示 |
|
|
「指定項目への代入」 指定した項目への代入内容をすべて表示 |
|
「一致」テキストフィールド |
検索対象の問い合わせる内容を指定します。 |
|
「型」リスト |
問い合わせる項目にフィルタを設定することができます。選択可能な型には次のものがあります。 |
|
|
「全部」言語要素の型を制限しない |
|
|
「メンバー/フィールド」クラスメンバーまたはレコードフィールド |
|
|
「クラス/構造体/記録」クラス、構造体、または記録 |
|
|
「静的」静的記憶域を持つ関数または変数 |
|
|
「関数」関数 |
|
|
「記号的定数」記号名で参照される定数。ENUM メンバー、PARAMETER 文で定義した定数、セットメンバー、#define マクロ (引数あり・引数なし) など |
|
「スコープ」リスト |
ソースに含まれる特定の要素だけを検索します。シェル形式の式がサポートされています。選択可能な構成要素には次のものがあります。 |
|
|
「全部」指定した項目の検索範囲を制限しない |
|
|
「プログラム/ライブラリ」指定したプログラムまたはライブラリファイルの中だけを検索 |
|
|
「クラス/構造体」指定したクラスまたは構造体の中だけを検索 |
|
|
「関数」指定した関数の中だけを検索 |
|
|
「ソースファイル」指定したソースファイルの中だけを検索 |
-sb オプションや -xsb オプションを指定してアプリケーションをコンパイルします。
このオプションは、コンパイラに、ブラウズ用データベースを生成するように指示します。「ブラウザデータベースの生成」を参照してください。
「ブラウズ」⇒「ソースのブラウズ」を選択するか、Sun WorkShop メインウィンドウのツールバーで「ブラウズ」ボタンをクリックして「ブラウズ」ウィンドウを表示し、「ソースのブラウズ」ラジオボタンをクリックします。
「ブラウズ」ウィンドウのタイトルバーに正しいブラウズディレクトリが表示されていることを確認します。
ブラウズディレクトリが正しくない場合は、「ブラウズ」⇒「ブラウズ対象ディレクトリを変更」を選択した後、「ソースブラウザのデータベースディレクトリ」ダイアログボックスで、ソースブラウザデータベースが格納されているディレクトリを選択します。
複数のブラウズ用データベースディレクトリからファイルを検索できます。「複数のディレクトリの検索」を参照してください。
テキストフィールドに検索内容を入力して、「問い合わせ」⇒「一致するものを検索」を選択するか「一致するものを検索」ボタンをクリックします。
問い合わせの書式については、「問い合わせの書式」を参照してください。
一致、型、スコープのいずれかをプルダウンリストから選択して、検索で一致した項目の数を制限します。
このリストについては、「ソースブラウズモードのブラウズウィンドウ」を参照してください。問い合わせの制限については、Sun WorkShop オンラインヘルプの該当項目を参照してください。
次のいずれかの方法で、「一致」区画内を移動することができます。
マウスを使用する
「次の一致」ボタンや「前の一致」ボタンをクリックする
F5 キーや Shift + F5 キーを押す
メニュー項目を使用する
各一致項目の行には、ソースファイル名、行番号、その行のテキストが記載されます。一致項目は、定義ではじまり、宣言で終わるようにソートされています。定義と宣言の間には、その他の一致項目がリストアップされています。各グループ内では、ファイル名のアルファベット順に、行番号の小さいものから表示されます。
一致項目をクリックして、エディタウィンドウにソースを表示します。
コールグラファ、クラスグラファ、またはクラスブラウザを起動して、ソース内の関係を表示します。
ソースブラウズモードで問い合わせを行うと、検索フィールドに入力されたシンボル、文字列定数、検索パターンに一致する全項目が検索されます。
問い合わせに一致したコード内のシンボルはすべて「一致項目」と呼ばれます。
通常、予約語の問い合わせはできませんが、ANSI C や C++ 言語で定義された型名の問い合わせは可能です。たとえば、ANSI C や C++ のプログラムでは、int、float、double、long を問い合わせの対象に指定できます。ただし、Fortran のプログラムでは、integer や print の問い合わせはできません。
変数、関数、型、定数、マクロのいずれも検索可能です。ブラウズする対象が何であるか不明確な場合は、以前にプログラムで使用した main か他の識別子を選択して検索を開始してください。