mdb(1) モジュラーデバッガは、次のタイプのファイルに適用できます。
ライブのオペレーティングシステムコンポーネント
オペレーティングシステムのクラッシュダンプ
ユーザープロセス
ユーザープロセスのコアダンプ
オブジェクトファイル
mdb デバッガは、カーネルの問題を解析するための高度なデバッグサポートを提供します。このセクションでは mdb 機能の概要を説明します。mdb の完全な説明については、Oracle Solaris Modular Debugger Guideを参照してください。
mdb を使用してライブカーネル状態を変更することも可能ですが、mdb には、kmdb で提供されているカーネル実行制御の機能がありません。このため、実行時デバッグには kmdb をお勧めします。mdb デバッガは通常、静的な状況で使用されます。
mdb デバッガにはデバッガモジュールを実装するための拡張プログラミング API が用意されているため、ドライバ開発者はカスタムのデバッグサポートを実装できます。mdb デバッガには、コマンド行編集、コマンド履歴、出力ページャー、オンラインヘルプなど、多数のユーザビリティー機能も用意されています。
mdb デバッガには一連の豊富なモジュールや dcmd が用意されています。これらのツールを使用すると、Oracle Solaris カーネル、任意の関連モジュール、およびデバイスドライバをデバッグできます。これらの機能を使用すると、次のようなタスクを実行できます。
複雑なデバッグクエリーを構築する
特定のスレッドによって割り当てられたすべてのメモリーを検出する
カーネル STREAM のビジュアル画像を出力する
特定のアドレスが参照している構造タイプを判定する
カーネルの中でリークしているメモリーブロックを検出する
スタックトレースを検出するためのメモリーを分析する
カスタマイズされた操作を作成するために、複数の dcmd を組み合わせて dmod と呼ばれるモジュールを構築する
使用を開始するには、次の例に示すように、クラッシュディレクトリに移動して mdb と入力し、システムクラッシュダンプを指定します。
使用例 23-7 クラッシュダンプに対する mdb の呼び出し% cd /var/crash/testsystem % ls bounds unix.0 vmcore.0 % mdb unix.0 vmcore.0 Loading modules: [ unix kited genunix ufs_log ip SBA s1394 cc nfs ] > ::status debugging crash dump vmcore.0 (64-bit) from test system operating system: 5.10 Generic (sun4u) panic message: zero dump content: kernel pages only
mdb からの応答として > プロンプトが返されたら、コマンドを実行できます。
ライブシステム上の実行中のカーネルを検査するには、次のようにシステムプロンプトから mdb を実行します。
使用例 23-8 実行中のカーネルに対する mdb の呼び出し# mdb -k Loading modules: [ unix kited genunix ufs_log ip SBA s1394 Pym cc IPX nfs ] > ::status debugging live kernel (64-bit) on test system operating system: 5.10 Generic (sun4u)