Sun WorkShop の概要 ホーム目次前ページへ次ページへ索引


付録 D

sbquerysb_initsbtags によるソースのブラウズ

この付録では、次の事項を説明します。

この付録は、主として、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

表 D-3   フォーカスオプション
フォーカスオプション 説明
-in_program program 検索範囲を program (プログラム) に限定
-in_directory directory 検索範囲を directory (ディレクトリ) に限定
-in_source_file source-file 検索範囲を source-file (ソースファイル) に限定
-in_function function 検索範囲を function (関数) に限定
-in_class class 検索範囲を class (クラス) に限定
-in_template template 検索範囲を template(テンプレート) に限定
-in_language language 検索範囲を language (言語) に限定



注 - フォーカスオプションを 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 ファイルでは、次のコマンドのみ使用できます。

表 D-5   sb_init で使用できるコマンド
コマンド 説明
import 現在の作業用ディレクトリ以外のディレクトリにデータベースを読み込みます。
export 特定のソースファイルと関連付けられたデータベース構成要素ファイルを、コンパイラの現在の作業ディレクトリ以外のディレクトリに書き込みます。このコマンドには、import コマンドの機能もあります。
replacepath データベースで検索するファイル名のパスの変更方法を指定します。データベースを移動する。
automount-prefix プログラムのコンパイルに使用されなかったマシン上でソースファイルをブラウズできます。
cleanup-delay 索引の構築から関連するデータベースのガベージコレクタまでの許容時間を制限します。


import

% import pathname

このコマンドは、Sun WorkShop のソースブラウズモードで、現在の作業用ディレクトリ以外のディレクトリにデータベースを読み込むことができます。このため、異なるディレクトリにデータベースを分散できます。

たとえば、プロジェクト A のプログラマがプロジェクト B のディレクトリに書き込むこともその逆もできないように、管理権限を設定しようとしています。この場合、プロジェクト A とプロジェクト B は、それぞれ独自のデータベースを保持する必要があります。どちらのデータベースも、他方のプロジェクトのプログラマからは読み取りしかできず、書き込みはできません。

export

% export prefix into path

このコマンドは、コンパイラと sbtags が、Sun WorkShop のソースブラウズモードとコンパイラで使用される現在の作業用ディレクトリ以外のディレクトリに、ソースファイルのデータベースコンポーネントファイルを書き込むことを可能にします。

prefix で始まる完全パス名の付いたソースファイルをコンパイラが処理した場合、生成されるブラウザ用データベース (.bd) ファイルは必ず path に格納されます。

export コマンドには pathimport コマンドが暗黙的に含まれているので、エクスポートされたデータベースコンポーネントは 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 の機能は、呼び出しのグラフィカル表示機能を除けば、ctagsetags と類似しており、定義とグラフィカル表示に関するデータベースへの直接の問い合わせと、パターン検索による問い合わせを組み合わせることができます。

sbtag で生成されたデータベースには、次の特徴があります。

sbtags を使用してブラウズデータベースを生成するには、コマンド行から次のコマンドを入力します。

% sbtags file

file は、データベースを作成するファイルです。詳細は、sbtags(1) のマニュアルページを参照してください。


サン・マイクロシステムズ株式会社
Copyright information. All rights reserved.
ホーム   |   目次   |   前ページへ   |   次ページへ   |   索引