Solaris モジューラデバッガ

ブロックの構築

ターゲットとは、デバッガによって検査されるプログラムのことです。MDB は、現在次のターゲットをサポートしています。

各ターゲットは、プロパティの標準セットをエクスポートします。プロパティには、1 つまたは複数のアドレス空間、1 つまたは複数のシンボルテーブル、ロードオブジェクトセット、およびスレッドセットが含まれます。図 2-1 は、MDB アーキテクチャの概要を示したもので、2 つの組み込みターゲットとサンプルモジュールのペアが入っています。

デバッガコマンド (MDB 用語法では、dcmd と表記し、ディーコマンドと読む) は、デバッガルーチンで、現ターゲットのどのプロパティにもアクセスできます。MDB は、標準入力からコマンドを構文解析し、次に対応する dcmd を実行します。各 dcmd は、文字列や数値引数のリストも受け取ることができます (「構文」を参照)。第 4 章「組み込みコマンド」で説明しますが、MDB には、常に使用可能な組み込み dcmd セットが入っています。MDB から提供されるプログラミング API を使用して dcmd を作成することにより、プログラマは MDB そのものの機能を拡張することもできます。

walker は、特定のプログラムデータ構造体の要素を調べたり、繰り返し調べたりする方法を記述するルーチンセットです。walker は、dcmd や MDB そのものからデータ構造体の実装状態をカプセル化します。walker は、対話処理でも使用でき、ほかの dcmd や walker を構築するためのプリミティブとしても使用できます。dcmd の場合と同様に、walker を追加してデバッガモジュールの一部として実装することにより、プログラマは MDB を拡張できます。

デバッガモジュール (dmod と表記し、ディーモッドと読む) は、動的に読み込まれたライブラリで、dcmd と walker が含まれています。初期設定の状態では、MDB は、ターゲット内に存在するロードオブジェクトに対応する dmod を読み込もうとします。その後、MDB を実行している間はいつでも、dmod の読み込みや解除ができます。MDB では、Solaris カーネルをデバッグするための標準 dmod セットが提供されています。

マクロファイルは、実行するコマンドセットを含むテキストファイルです。一般的に、マクロファイルは、単純データ構造体の表示プロセスを自動化するときに使用されます。MDB には下位互換性があるので、adb 言語向けに書かれたマクロファイルを実行できます。したがって、Solaris のインストールで提供されるマクロファイルセットは、新旧どちらのツールでも使用可能です。