Sun WorkShop の概要 | ![]() ![]() ![]() ![]() ![]() |
付録 D
sbquery
、sb_init
、sbtags
によるソースのブラウズ
sbquery
ユーティリティ : ソースコードをブラウズするためのコマンド行ユーティリティです。- ソースファイルに関するデータベース情報が複数のディレクトリに分散している場合の作業方法。
sbtags
コマンド。ソースファイルからブラウズ情報を短時間かつ簡単に収集する手段です。この付録は、主として、Sun WorkShop 内からも行える作業をコマンド行から行う方法を説明しています。ソースのブラウズに関する概念的な情報については、このマニュアルの第 5 章と オンラインヘルプを参照してください (オンラインヘルプには、どの Sun WorkShop ウィンドウからも、「ヘルプ」メニューからアクセスできます)。
sbquery
ユーティリティ
sbquery
は、コマンド行から利用できるユーティリティです。デフォルトでは、sbquery
は現在の作業用ディレクトリ内のデータベースからシンボルを検索します。別のディレクトリに格納されているデータベースをブラウズする場合は、「sb_init ファイルと sb_init コマンド」を参照してください。コマンド行から問い合わせを発行するには、
sbquery
に続けて、コマンド行のオプションと引数、検索対象のシンボルを入力します。
%sbquery
[options] symbols
sbquery
は、symbols に一致するものに関する情報、すなわち、シンボルを含むファイル、行番号、シンボルを含む関数、シンボルを含むソース行を一覧表示します。
sbquery
のオプション
sbquery
のコマンド行オプションを一覧表示するには、シェルプロンプトでsbquery
と入力します。表 D-1 に、このコマンドのオプションを示します。sbquery
(1) のマニュアルページも参照してください。
表 D-1 sbquery
のオプション-pattern
symbol先頭ダッシュ (-) など、特殊な文字を含むシンボルを問い合わせます。このオプションでは、コマンド行オプションのようなシンボルに対する問い合わせが可能です。たとえば、シンボル -help
を問い合わせる場合は、通常の-help
オプションと区別するために使用します。-break_lock
データベースのロックを解除します。索引ファイルの更新が異常終了した後に問い合わせを発行すると、データベースがロックされているというメッセージが表示され、この引数が必要になることがあります。このオプションを使用した後には、データベースの状態が不整合になる可能性があります (整合性を確保するには、データベースディレクトリを削除してから、プログラムを再コンパイルします)。 -files_only
検索対象のシンボルが含まれるファイルだけを表示します。 -help
sbquery
コマンドの形式を表示します。sbquery
をオプションやシンボルなしで入力しても同じです。-help_focus
ディレクトリ内の特定の種類のプログラムのみを問い合わせるためのフォーカスオプションのリストを表示します。このオプションを使用して、プログラムや関数といった特定のコード単位に限定した問い合わせを発行できます。 -help_filter
language-help_filter
だけを指定した場合は、フィルタオプションで使用できる言語の一覧を表示します。-help_filter
language の形式で入力した場合は、指定された言語で使用できるフィルタオプションの一覧を表示します。プログラム内の使用法に基づいてシンボルを探すには、フィルタオプションを使用します (表 D-2 を参照)。-max_memory
size索引ファイルの構築時、 sbquery
が一時ファイルを使用する前に割り当てる必要のあるメモリー容量の概算値 (メガバイト単位) を設定します、-no_case
問い合わせで大文字と小文字を区別します。 -no_source
一致したもののファイル名と行番号だけ表示し、一致したものを含むソース行を表示しません。 -no_update
コンパイルの後に問い合わせを発行するときに索引ファイルを再構築しません。このオプションを指定しないでコンパイルまたは再コンパイルの後に問い合わせを発行すると、データベースによって問い合わせの更新と処理が行われます。 -o
file問い合わせの出力を file に送信します。 -show_db_dirs
問い合わせを発行したときに読み取られたデータベースディレクトリのリストを表示します。リストに含まれるのは、現在の作業ディレクトリ内のデータベースディレクトリと、 sb_init
ファイルのimport
またはexport
コマンドで指定されたその他すべてのデータベースディレクトリです。-symbols_only
検索パターン内のパターンに一致するシンボルのリストを表示します。問い合わせでワイルドカードを使用する場合に役立ちます。 -version
現在のバージョン番号を表示します。 -sh_pattern
ワイルドカードを含む問い合わせを発行するときにシェル形式の表現を使用します (デフォルト)。同じコマンド行で別のパターン検索を実行する場合に、このオプションを指定します (シェル形式のパターン検索については、 sh
(1) を参照)。-reg_expr
ワイルドカードを含む問い合わせを発行するときに正規表現を使用します。このオプションを指定しないと、シェル形式のパターンとみなされます。 -literal
問い合わせにワイルドカード表現を使用しません。別のワイルドカード方式からメタキャラクタを含む文字列を検索する場合に役立ちます。
検索を絞り込むためのオプションには、フィルタオプション (表 D-2) とフォーカスオプション (表 D-3) の 2 種類があります。
表 D-2 のフィルタオプションは、プログラム内でシンボルがどのように使用されているかに応じて、シンボルを検索するときに使用します。たとえば、フィルタオプションを使用しできます、検索対象を変数の宣言に限定できます。
%sbquery
-help_filter
language
表 D-2 言語フィルタオプション ansi_c
C sun_as
アセンブリ言語 sun_c_plus_plus
C++ sun_f77
FORTRAN 77
表 D-3 のフォーカスオプションは、検索範囲を、特定のプログラム、関数、ライブラリなどの、特定のクラスのコードに限定します。
%sbquery
focus-option
symbol
注 - フォーカスオプションを 2 つ以上指定して、一致するものが複数見つかった場合は、一致したものが 1 つだけ返されます。
環境変数
環境変数は、
sbquery
(および Sun WorkShop のソースブラウズ) の動作に影響する情報を提供します。
表 D-4 環境変数 HOME
ログインディレクトリの名前 PWD
現在のディレクトリのフルパス名 SUNPRO_SB_ATTEMPTS_MAX
ロックされたデータベースに対して索引ビルダーがアクセスを試みる最大回数 SUNPRO_SB_EX_FILE_NAME
sun_source_browser.ex
ファイルの絶対パス名SUNPRO_SB_INIT_FILE_NAME
sb_init
ファイルの絶対パス名。sb_init
については、「sb_init ファイルと sb_init コマンド」を参照してください。
sb_init
ファイルとsb_init
コマンドこの節では、ソースファイルに関するデータベース情報が複数のディレクトリに格納されている場合の作業方法について説明します。デフォルトでは、現在の作業用ディレクトリにデータベースが作成され、問い合わせを発行するとそのデータベースが検索されます。
Sun WorkShop のソースブラウズ機能、コンパイラ、
sbtags
は、sb_init
テキストファイルを使用して、ソースブラウズ用データベースの構造に関する制御情報を取得します。ソースファイルに関するデータベース情報が複数のディレクトリに分散している場合は、sb_init
を使用してください。
sb_init
ファイルは、SunWS_config
ディレクトリに置くようにしてください。このディレクトリから、ソースブラウズ機能やコンパイラ、sbtags
も実行するようにします。これらのツールは、sb_init
ファイルを探すとき、現在の作業用ディレクトリを検査します。デフォルトでは、現在の作業ディレクトリに対して
sb_init
ファイルの検索が行われます。別のディレクトリでsb_init
ファイルを検索するように Sun WorkShop とコンパイラに指示するには、環境変数SUNPRO_SB_INIT_FILE_NAME
を/
<検索するディレクトリのパス>/sb_init
に設定します。
コマンドリファレンス
sb_init
コマンドを使用するには、sb_init
ファイルにコマンドを追加します。sb_init
ファイルでは、次のコマンドのみ使用できます。
import
%import
pathnameこのコマンドは、Sun WorkShop のソースブラウズモードで、現在の作業用ディレクトリ以外のディレクトリにデータベースを読み込むことができます。このため、異なるディレクトリにデータベースを分散できます。
たとえば、プロジェクト A のプログラマがプロジェクト B のディレクトリに書き込むこともその逆もできないように、管理権限を設定しようとしています。この場合、プロジェクト A とプロジェクト B は、それぞれ独自のデータベースを保持する必要があります。どちらのデータベースも、他方のプロジェクトのプログラマからは読み取りしかできず、書き込みはできません。
export
%export
prefix into pathこのコマンドは、コンパイラと
sbtags
が、Sun WorkShop のソースブラウズモードとコンパイラで使用される現在の作業用ディレクトリ以外のディレクトリに、ソースファイルのデータベースコンポーネントファイルを書き込むことを可能にします。prefix で始まる完全パス名の付いたソースファイルをコンパイラが処理した場合、生成されるブラウザ用データベース (
.bd
) ファイルは必ず path に格納されます。
export
コマンドには path のimport
コマンドが暗黙的に含まれているので、エクスポートされたデータベースコンポーネントは Sun WorkShop のソースブラウズモードで自動的に読み込まれます。
export
コマンドは、/usr/include
の#include
など、同じファイルと関連付けられたデータベースファイルを単一のデータベースに配置してディスク空間を節約しながら、各プロジェクト用のデータベースを個々に保持することを可能にします。
sb_init
ファイルに複数のexport
コマンドを含める場合は、範囲の広い順にコマンドを並べる必要があります。コンパイラは、sb_init
ファイルに記述されている順序でexport
コマンドを読み取ります。
replacepath
%replacepath
from-prefix to-prefixこのコマンドは、ソースブラウズ用データベース内のパス名を変更する方法を指定します。
一般に、from-prefix はオートマウンタのマウントポイント (オートマウンタが実際にファイルシステムをマウントする場所のパス名) であり、to-prefix はオートマウンタのトリガーポイント (開発者が使用する既知のパス名) です。
オートマウンタの使用方法は柔軟性に富んでおり、ホストによって異なることがあります。
オートマウンタの設定を元に戻すには、デフォルトの
replacepath
コマンドを使用します。
%replacepath
/tmp_mntこのためには、コマンドの第 1 引数にマウントポイント、第 2 引数にトリガーポイントを指定する必要があります。
automount-prefix
%automount-prefix
mount-point trigger-point
automount-prefix
コマンドを使用して、プログラムのコンパイルに使用されなかったマシン上でソースをブラウズできます。このコマンドは、automount-prefix
のパス変換がコンパイル時に行われてデータベースに書き込まれる点を除けばreplacepath
コマンドと同じです。
automount-prefix
コマンドは、データベースに格納されている名前からどのオートマウンタの接頭辞を削除するかを定義します。オートマウンタがファイルシステムをマウントするディレクトリは mount_point です。trigger_point は、エクスポートされたファイルシステムにアクセスするための接頭辞であり、デフォルトは/
です。データベース内のパスで問題が発生した場合、
automount_prefix
コマンドとreplacepath
コマンドのパス変換情報を使用して、ブラウズ中にソースファイルが検索されます。一見すると、両方のパスの検索は不可能と思われます。コンパイラの実行中に作成されたブラウザ用データベースには、各ソースファイルの絶対パスが格納されています。絶対パスがコンピュータ間で統一されていないと、問い合わせに応答するときに Sun WorkShop がソースファイルを表示できません。
- すべてのコンピュータですべてのソースファイルが同じマウントポイントにマウントされるようにする
- オートマウントされたパスでプログラムをコンパイルする。そうしたパスに対する参照があると、オートマウンタは別のコンピュータのファイルシステムを自動的にマウントします。
オートマウンタの設定を元に戻すには、デフォルトの
automount-prefix
コマンドを使用します。
% automount-prefix
/tmp-mnt /
automount-prefix
コマンドが指定されていない場合に限り、デフォルトの規則が生成されます。オートマウンタの使用方法に関する詳細は、
automount(1M)
のマニュアルページを参照してください。
cleanup-delay
このコマンドは、索引の再構築から関連するデータベースのガベージコレクトまでの時間を制限します。制限時間が経過すると、コンパイラは自動的に
sbcleanup
を呼び出します。デフォルトでは 12 時間です。
sbtags
ユーティリティ
sbtags
コマンドを使用して、ソースファイルからブラウズ情報を簡単に収集できます。この方法を利用すると、完全にコンパイルされていないプログラムに対しても最低限のブラウズ情報を収集できます。詳細は、sbtags
(1) のマニュアルページを参照してください。
sbtags
コマンドは、コンパイルで入手可能な情報の一部を収集します。ただし、簡略化された情報では、一部のブラウズ機能に制限があります。sbtags
で生成されたデータベースでは、関数や変数に問い合わせを実行したり、関数の呼び出しをグラフィカルに表示したりできます。現在、
sbtags
で生成されるタグデータベースには次の制限があります。
- ローカル変数に関する問い合わせを発行できない
- クラスをブラウズできない
- クラスの関係をグラフィカル表示できない
- 複雑な問い合わせを発行する機能に制限がある
- 問い合わせを限定する機能に制限がある
- コンパイルされた情報よりも信頼性が低い
ファイルが変更されても、しばしば、再度読み取って変更をデータベースに取り込む必要がないことがあります。
sbtags
データベースは、ソースファイルの字句解析に基づいています。このデータベースは、すべての言語構造を正しく識別するとは限りませんが、コンパイルされないファイルでも動作し、再コンパイルよりも高速に実行されます。
sbtags
は、型と関数の定義を認識し、関数呼び出しの情報を収集します。関数呼び出しの情報以外は収集されません。特に、複雑な問い合わせに関する他の意味情報は収集されません。
sbtags
の機能は、呼び出しのグラフィカル表示機能を除けば、ctags
やetags
と類似しており、定義とグラフィカル表示に関するデータベースへの直接の問い合わせと、パターン検索による問い合わせを組み合わせることができます。
sbtag
で生成されたデータベースには、次の特徴があります。
- クラスブラウザとクラスグラファの機能を使用できない。
- データベースには、シンボルと文字列に関する情報がすべて格納されているとは限らない。関数、クラス、型、関数呼び出しに関する情報は格納されている。
sbtags
プログラムはコンパイラよりも高速に動作するため、時間の節約になる。- データベースのサイズは、ソースコードのサイズよりもずっと小さい。
- データベースの内容については、意味上の正確さが保証されない (
sbtags
プログラムが実行するのは単純な構文解析と意味解析だけであり、エラーが発生することもあるため)。- コードが不完全であるか意味に誤りがあるためにソースコードをコンパイルできなくても、データベースが生成される。
sbtags
を使用してブラウズデータベースを生成するには、コマンド行から次のコマンドを入力します。
%sbtags
file
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |