Solaris モジューラデバッガ

組み込み dcmd

> 変数名
> /修飾子/ 変数名

指定された名前の変数にドット値を割り当てます。変数が読み取り専用の場合には、変更できません。> の後に // で囲まれた修飾子がある場合、ドット値は割り当ての一部として変更されます。修飾子は、次のとおりです。

c

符号なし char の量 (1 バイト)

s

符号なし short の量 (2 バイト)

i

符号なし int の量 (4 バイト)

l

符号なし long の量 (32 ビットでは 4 バイト、64 ビットでは 8 バイト)

ただし、これらの演算子は、キャストを実行しません。したがって、リトルエンディアンのアーキテクチャでは指定数値の下位バイトから先に読み込まれ、ビッグエンディアンのアーキテクチャでは、上位バイトから先に読み込まれます。これらの修飾子には下位互換性があります。ただし、MDB の */modifier/ および %/modifier/ 構文を使用します。

$< macro-name

指定したマクロファイルからコマンドを読み取り、実行します。ファイル名は、絶対パスまたは相対パスとして与えられます。ファイル名に '/' が含まれない場合は単純名です。単純名の場合、MDB は、マクロファイル組み込みパス内でそのファイル名を検索します。現時点で別のマクロファイルが処理されている場合、そのファイルは閉じられ、代わりに新しいファイルが処理されます。

$<< macro-name

$< と同様に、指定されたマクロファイルからコマンドを読み取って実行しますが、現在開いているマクロファイルは閉じません。

$?

ターゲットがユーザープロセスまたはコアファイルの場合、まず、ターゲットのプロセス ID と現在のシグナルを出力して、次に、代表スレッドの汎用レジスタセットを出力します。

[ address ] $C [ count ]

C スタックのバックトレースを、スタックフレームポインタの情報も含めて出力します。この dcmd の前に明示的な address がある場合には、その仮想記憶アドレスから始まるバックトレースを表示します。その他の場合には、代表スレッドのスタックを表示します。オプションのカウント値が引数として指定されている場合には、出力の各スタックフレームに対して、count 引数で指定された数の引数だけが表示されます。


64-bit SPARC のみ –

スタックトレースを要求する場合は、バイアス式フレームポインタ値、つまり、仮想アドレス - (マイナス) 0x7ff をアドレスとして使用してください。


[ base ] $d

デフォルトの出力基数を受け取るか、設定します。この dcmd の前に明示的な式がある場合には、デフォルトの出力基数は、指定された base に設定されます。その他の場合には、現在の基数が 10 進数で出力されます。デフォルトの基数は 16 (16 進数) です。

$e

既知の外部すなわちグローバルのオブジェクト型シンボルや関数シンボルのリスト、そのシンボルの値、およびターゲットの仮想アドレス空間内の対応位置に格納される最初の 4 バイト (32 ビット mdb) または 8 バイト (64 ビット mdb) のリストを出力します。::nm dcmd には、シンボルテーブルの表示用にさらに柔軟なオプションが用意されています。

$P prompt-string

指定された prompt-string にプロンプトを設定します。デフォルトのプロンプトは、'>' です。::set -P または -P コマンド行オプションを使用しても、プロンプトは設定できます。

distance $s

アドレスからシンボル名へ変換するための、シンボルマッチングディスタンスを受け取るか、設定します。シンボルマッチングディスタンスのモードについては、付録 A 「オプション」-s コマンド行オプションで説明します。::set -s オプションを使用しても、シンボルマッチングディスタンスは変更できます。距離が指定されない場合には、現在の設定が表示されます。

$v

指定された変数のリストのうち、ゼロ以外の値を持つ変数リストを出力します。::vars dcmd を使用すると、変数の一覧表示に他のオプションを付けることができます。

width $w

出力のページ幅を指定された値に設定します。通常は、MDB が端末に幅の照会をしてサイズを変更するので、このコマンドは必要ありません。

$W

ターゲットを書き込み用にもう一度開きます (-w オプションをコマンド行に指定して MDB を実行する場合と同じ)。::set -w オプションを使用しても、書き込みモードを有効にできます。

[ pid ] ::attach [ core | pid ]
[ pid ] :A [ core | pid ]

ユーザープロセスターゲットが動作中の場合には、指定されたプロセス ID またはコアファイルに接続して、デバッグします。コアファイルのパス名は、文字列引数として指定されます。プロセス ID は、この dcmd の前で、文字列引数として、または式の値として指定されます。デフォルトは 16 進数であることを忘れないで下さい。したがって、pgrep(1)ps(1) を使用して得た 10 進数のプロセス ID を式として指定する場合には、その先頭に “0t” を付けてください。

::cat filename ...

ファイルを連結して、表示します。各ファイル名は、相対パスまたは絶対パス名で指定します。ファイルの内容は標準出力に出力されますが、出力ページャは通りません。この dcmd は、| 演算子とともに使用するようなっています。したがって、プログラマは外部ファイルに格納されたアドレスリストを使用してパイプラインを処理できます。

address ::context
address $p

指定されたプロセスへのコンテキストスイッチ。コンテキストスイッチの操作は、カーネルターゲットを使用している場合にだけ有効です。プロセスのコンテキストを指定するには、カーネルの仮想アドレス空間において、そのプロセスの proc 構造体の address を使用します。特別なコンテキストアドレス「0」は、カーネルそのもののコンテキストを表すときに使用されます。カーネルページだけの場合とは対照的に、指定されたユーザープロセスの物理メモリーページがクラッシュダンプに含まれる場合、クラッシュダンプを検査するときに MDB が実行できるのはコンテキストスイッチだけです。dumpadm(1M) を使用すると、すべてのページまたは現在のユーザープロセスのページをダンプできるようにカーネルクラッシュダンプ機能を構成できます。::status dcmd を使用すると、現在のクラッシュダンプの内容を表示できます。

ユーザーがカーネルターゲットからコンテキストスイッチを要求した場合には、MDB は指定されたユーザープロセスに相当する新しいターゲットを作成します。スイッチが発生した後、新しいターゲットは、自身の dcmd をグローバルレベルに置きます。したがって、このとき、/ dcmd が、ユーザープロセスの仮想アドレス空間からデータをフォーマットして表示したり、::mappings dcmd が、ユーザープロセスのアドレス空間でマッピングを表示したりできます。0::context を実行すると、カーネルターゲットを復元できます。

::dcmds

使用可能な dcmd を一覧表示し、各 dcmd の簡単な説明を出力します。

[ address ] ::dis [ -fw ] [ -n count ] [ address ]

最後の引数または現在のドット値によって指定されたアドレス、またはそのアドレス周辺から、逆アセンブルします。そのアドレスが、既知の関数の最初の部分に一致した場合には、その関数全体を逆アセンブルします。その他の場合には、指定されたアドレスの前後に命令を示す「ウィンドウ」が表示され、コンテキストが提供されます。デフォルトでは、命令はターゲットの仮想アドレス空間から読み取られます。ただし、-f オプションを指定すると、命令はターゲットのオブジェクトファイルから読み取られます。デバッガが現在、動作中のプロセス、コアファイル、またはクラッシュダンプに接続されていない場合、-f オプションはデフォルトで有効になります。また、アドレスが既知の関数の最初の部分に一致した場合でも、-w オプションを指定すると、「ウィンドウ」を強制的に開くモードに設定できます。デフォルトでは、ウィンドウのサイズは命令 10 個分です。-n オプションを使用すれば、命令の数を明確に指定できます。

::disasms

使用可能な逆アセンブラのモードを一覧表示します。ターゲットが初期化されている場合には、MDB は適切な逆アセンブラモードを選択しようとします。また、::dismode dcmd を使用して、ユーザーは、初期モードを一覧表のどれかに変更できます。

::dismode [ mode ]
$V [ mode ]

逆アセンブラモードを受け取るか、設定します。引数が指定されていないと、現在の逆アセンブラモードを出力します。mode 引数が指定されている場合には、逆アセンブラを指定されたモードに切り替えます。また、::disasms dcmd を使用して、逆アセンブラのリストを表示できます。

::dmods [ -l ] [ module-name ]

読み込まれたデバッガモジュールを一覧表示します。-l オプションが指定されていると、各 dmod に関連付けられた dcmd や walker の一覧がその dmod 名の下に出力されます。特定の dmod の名前を追加の引数として指定すれば、出力はその dmod に限定されます。

[address] ::dump [- eqrstu] [-f|-p] [-g bytes] [-w paragraphs]

ドットによって指定されたアドレスを含む、16 バイトで割り当てられた仮想記憶領域のメモリーダンプを 16 進数の ASCII 形式で出力します。::dump に繰り返し回数を指定すると、ダンプする繰り返し数としてではなく、ダンプするバイト数として解釈されます。また、::dump dcmd は、次のオプションも認識します。

-e

エンディアンについて調整します。-e オプションを指定すると 4 バイトワード使用します。-g オプションを使用すると、デフォルトのワードサイズを変更できます。

-f

ターゲットの仮想アドレス空間からではなく、指定された仮想アドレスに対応するオブジェクトファイルの位置からデータを読み取ります。デバッガが現在、動作中のプロセス、コアファイル、またはクラッシュダンプに接続されていない場合、-f オプションはデフォルトで有効になります。

-g group

バイトをバイトのグループで表示します。デフォルトの group サイズは 4 バイトです。group サイズは行幅を分割する 2 のべき乗にする必要があります。

-p

address を、仮想アドレスではなく、ターゲットのアドレス空間内の物理的なアドレス位置として解釈します。

-q

データの ASCII 形式の復号化を出力しません。

-r

各行の明示的なアドレスではなく、開始アドレスからの相対的な行数を示します。このオプションを指定すると、-u オプションも暗黙的に指定されます。

-s

繰り返される行を省略します。

-t

すべての行を読み取って出力するのではなく、指定されたアドレスの内容だけを読み取って表示します。

-u

段落の境界に配列するのではなく、配列せずに出力します。

-w paragraphs

行ごとに 16 バイトの段落で段落を表示します。デフォルトの段落数は 1 です。-w の最大値は 16 です。

::echo [ string | value ... ]

空白文字で区切られ、復帰改行文字で終わる引数を標準出力に出力します。$[ ] で囲まれた式は値に評価されて、デフォルトで出力されます。

::eval command

指定された文字列をコマンドとして評価し、実行します。コマンドがメタキャラクタや空白を含む場合は、引用符や二重引用符で囲みます。

::files $f

既知のソースファイルの一覧、すなわち、種々のターゲットシンボルテーブルの中にある STT_FILE 型のシンボルを出力します。

[address] ::findsym [-g] [ address | symbol ...]

指定されたシンボルまたはアドレスを参照する命令用の命令テキストを検索します。検索リストは、dcmd の前にアドレスとして指定された 1 つまたは複数のアドレスまたはシンボル名、あるいは、dcmd の後に指定された 1 つまたは複数のシンボル名または式から構成される必要があります。-g オプションを指定すると、検索は命令テキスト、つまり、ターゲットのシンボルテーブルにあるグローバルに参照できる関数の一部に制限されます。


注 –

SPARC のみ。SPARC 命令セットアーキテクチャを使用するターゲットをデバッグするときに使用できるのは、::findsym dcmd だけです。


::formats

利用可能な出力書式制御文字の一覧を、/\?= などのフォーマット dcmd とともに使用して一覧表示します。フォーマットとその使用法については、dcmd のフォーマットで説明しています。

[ thread ] ::fpregs [-dqs]
[ thread ] $x, $X, $y, $Y

代表スレッドの浮動小数点レジスタセットを出力します。スレッドを指定すると、そのスレッドの浮動小数点レジスタが表示されます。スレッド式は、スレッドのサポートで説明しているスレッド識別子の 1 つである必要があります。


注 –

SPARC のみ。-d-q、および -s オプションを使用すると、倍精度 (-d)、四倍精度 (-q)、あるいは単精度(-s) の浮動小数点値の集合として、浮動小数点レジスタを表示できます。


::grep command

指定されたコマンド文字列を評価した後、新しいドット値がゼロ以外の場合には、古いドット値を出力します。command に空白やメタキャラクタが含まれる場合は、必ず引用符で囲んでください。パイプライン内で ::grep dcmd を使用すると、アドレスリストをフィルタリングできます。

::help [ dcmd-name ]

引数がない場合には、::help dcmd は、MDB で使用可能なヘルプ機能の概要を簡潔に出力します。dcmd-name が指定されている場合には、MDB は、その dcmd の使用法の概略を出力します。

[ address ] ::list type member [ variable-name ]

リンクリストデータ構造体の要素を調べて、リスト内の各要素のアドレスを出力します。オプションの address を使用すると、リスト内の最初の要素のアドレスを指定できます。その他の場合には、リストは現在のドット値から始まります。MDB が適切なサイズのオブジェクトから読み取ることができるように、type パラメータは C 言語の構造体または共用体を指定する必要があり、リスト内の要素の型を記述するのに使用されます。member パラメータは、リスト内の次の要素へのポインタを含む、type のメンバーを指定するのに使用されます。 ::list dcmd は、要素を読み取っている間、NULL ポインタを見つけるか、もう一度最初の要素に到達するまで (つまり、循環リスト)、あるいは、エラーが発生するまで、繰り返します。オプションの variable-name が指定されている場合には、MDB がパイプラインの次のステージを呼び出すときに walk の各ステップが返す値に、指定変数が割り当てられます。


注 –

この dcmd は、mdb で使用されるように設計された圧縮シンボルデバッグ情報を含むオブジェクトだけに使用できます。現時点ではこの情報を利用できるのは、特定の Solaris カーネルモジュールだけです。この圧縮シンボルデバッグ情報を処理するには、圧縮解除ソフトウェア SUNWzlib (32 ビット) または SUNWzlibx (64 ビット) がインストールされている必要があります。


::load [ -s] module-name

指定された dmod を読み込みます。モジュール名は、絶対パスまたは相対パスとして指定します。module-name が単純名、つまり '/' を含んでいない場合には、MDB はモジュールライブラリパス内で検索します。モジュールの名前に重複があった場合には、そのモジュールは読み込まれません。その場合は、まず既存のモジュール名を読み込み解除してください。-s オプションを指定すると、MDB はモジュールを発見または読み込めなくても何も出力せず、エラーメッセージも表示しません。

::log [ -d | [ - e ] filename ]
$> [ filename ]

出力ログを有効にしたり、無効にしたりします。MDB は、相互ログ機能を提供しているので、まだユーザーとの対話処理が行われているときにも、入力コマンドと標準出力の両方が同じファイルに記録できます。-e オプションでファイルを指定すると、指定したファイルへのログの書き込みが有効になり、ファイル名を指定しない場合、前回のログファイルへの書き込みが再び有効になります。-d オプションは、ログを無効にします。また、$> dcmd を使用する場合、ファイル名引数が指定されているときには、ログが有効になります。その他の場合、ログは無効になります。指定されたログファイルがすでに存在する場合、MDB は新しいログ出力をそのファイルに追加します。

::map command

文字列引数として指定される command を使用して、ドット値を対応する値へ割り当ててから新しい値を出力します。コマンドに空白やメタキャラクタが含まれる場合には、必ず引用符で囲みます。::map dcmd をパイプライン内で使用すると、アドレスのリストを新しいアドレスリストに変換できます。

[ address ] ::mappings [ name ]
[ address ] $m [ name ]

ターゲットの仮想アドレス空間内の各割り当てを、アドレス、サイズ、それぞれの割り当て記述などを含めて一覧表示します。address が dcmd の前にある場合、MDB は指定されたアドレスを含む割り当てだけを表示します。また、文字列で name 引数が指定されている場合には、MDB はその記述に一致する割り当てだけを表示します。

[address] ::nm [ -DPdghnopuvx ] [ -t types ] [ -f format ] [ object]

現在のターゲットに関連付けられたシンボルテーブルを出力します。オプションの address を dcmd の前に指定した場合、address に対応するシンボル用のシンボルテーブルエントリだけが表示されます。object 名を指定すると、この読み込みオブジェクト用のシンボルテーブルだけが表示されます。また、::nm dcmd は、次のオプションも認識します。

-D

.symtab の代わりに .dynsym (動的シンボルテーブル) を出力する

-P

.symtab の代わりに専用シンボルテーブルを出力する

-d

値とサイズフィールドを 10 進数で出力する

-f format [,format...]

指定されたシンボル情報だけを出力する。有効な書式化引数文字列は次のとおり。

ndx

シンボルテーブルのインデックス

val

シンボルテーブル

size

サイズ (バイト)

type

シンボルの型

bind

バインド

oth

その他

shndx

セクションのインデックス

name

シンボル名

ctype

シンボルの C 言語の型 (既知の場合)

obj

シンボルを定義するオブジェクト

-g

グローバルなシンボルだけを出力する

-h

ヘッダー行を抑制する

-n

名前順にシンボルをソートする

-o

値とサイズフィールドを 8 進数で出力する

-p

シンボルを、一連の ::nmadd コマンドとして出力する。このオプションは -P とともに使用して、マクロファイルを作成できる。その後、$< コマンドを用いて、このマクロファイルをデバッガに読み込む

-t type [,type...]

指定された型のシンボルだけを出力する有効な型引数文字列は次のとおり。

noty

STT_NOTYPE

objt

STT_OBJECT

func

STT_FUNC

sect

STT_SECTION

file

STT_FILE

comm

STT_COMMON

tls

STT_TLS

regi

STT_SPARC_REGISTER

-u

未定義のシンボルだけを出力する

-v

値順にシンボルをソートする

-x

値とサイズフィールドを 16 進数で出力する

value ::nmadd [ -fo ] [ -e end ] [ -s size ] name

指定されたシンボルの名前を、専用シンボルテーブルへ追加します。MDB は、構成可能な専用シンボルテーブルを用意しています。シンボルの名前解決で説明したように、この専用テーブルは、ターゲットのシンボルテーブル内に置くことができます。また、::nmadd dcmd は、次のオプションも認識します。

-e

シンボルのサイズを end - value に設定する

-f

シンボルのタイプを STT_FUNC に設定する

-o

シンボルのタイプを STT_OBJECT に設定する

-s

シンボルのサイズを size に設定する

::nmdel name

指定されたシンボルの名前を専用シンボルテーブルから削除します。

::objects

既知の読み込みオブジェクトの一次割り当て (通常はテキストセクション) に対応するマッピングだけを表示して、そのターゲットの仮想アドレス空間の割り当てを出力します。

::offsetof type member

指定された型とメンバーのオフセットを出力します。型は C 言語の構造体の名前である必要があります。メンバーがビットフィールドでない場合、オフセットはバイトで出力されますが、その場合、オフセットはビットで出力されます。分かりやすくするために、出力の末尾には常に適切な単位が付きます。型名には、シンボルの名前解決で説明した逆引用符 (') 有効範囲規則を使用できます。


注 –

この dcmd は、mdb で使用されるように設計された圧縮シンボルデバッグ情報を含むオブジェクトだけに使用できます。現時点ではこの情報を利用できるのは、特定の Solaris カーネルモジュールだけです。この圧縮シンボルデバッグ情報を処理するには、圧縮解除ソフトウェア SUNWzlib (32 ビット) または SUNWzlibx (64 ビット) がインストールされている必要があります。


[address] ::print [-aCdLptx] [-c lim] [-l lim] [type [member ... ] ]

指定された仮想 address にあるデータ構造体を、指定された type 情報を使用して出力します。 type パラメータは C 言語の構造体、共用体、列挙型、基本的な整数型、あるいは、これらの型へのポインタを指定できます。型名に空白文字が含まれる場合 (たとえば、"struct foo")、単一引用符または二重引用符で囲む必要があります。型名には、シンボルの名前解決で説明した逆引用符 (') 有効範囲規則を使用できます。 type が構造化された型である場合、 ::print dcmd は構造体または共用体の各メンバーを再帰的に出力します。type 引数を指定せず、かつ、静的またはグローバルな STT_OBJECT シンボルがアドレスに一致する場合、::print は自動的に適切な型を推測します。type 引数を指定して、かつ、オプションの member 式のリストも続いて指定した場合、指定された type のメンバーまたはサブメンバーだけが表示されます。 type が他の構造化された型を含む場合、ピリオド ('.') を区切り記号として区切ったメンバー名のリストを作成すると、各 member 文字列は下位で構造化された型の要素を参照できます。 ::print dcmd は、mdb で使用されるように設計された圧縮シンボルデバッグ情報を含むオブジェクトだけに使用できます。データ構造体を表示した後、::print はドットを type のサイズ分 (バイト) だけインクリメントします。


注 –

この dcmd は、mdb で使用されるように設計された圧縮シンボルデバッグ情報を含むオブジェクトだけに使用できます。現時点ではこの情報を利用できるのは、特定の Solaris カーネルモジュールだけです。この圧縮シンボルデバッグ情報を処理するには、圧縮解除ソフトウェア SUNWzlib (32 ビット) または SUNWzlibx (64 ビット) がインストールされている必要があります。


-a オプションを指定すると、各メンバーのアドレスが表示されます。-p オプションを指定すると、::print はアドレスを、仮想メモリーアドレスではなく、物理メモリーアドレスとして解釈します。-t オプションを指定すると、各メンバーの型が表示されます。-d または -x オプションを指定すると、すべての整数は 10 進数 (-d) または 16 進数 (-x) で表示されます。値を 10 進数または 16 進数のどちらで表示するかを決定するとき、デフォルトではヒューリスティックに行います。文字列として読み取りまたは表示される文字配列内の文字数は -c オプションで制限できます。-C オプションを指定すると、文字数は制限されません。読み取りまたは表示される標準配列内の要素数は -l オプションで制限できます。-L オプションを指定すると、文字数は制限されず、配列内のすべての要素が表示されます。-c-l オプションのデフォルト値を変更するには、付録 A 「オプション」で説明する ::set または -o コマンド行オプションを使用します。

::quit
$q

デバッガを終了します。

[ thread ] ::regs
[ thread ] $r

代表スレッドの汎用レジスタセットを出力します。スレッドを指定すると、そのスレッドの汎用レジスタセットが表示されます。スレッド式は、スレッドのサポートで説明しているスレッド識別子の 1 つである必要があります。

::release [ -a ]
:R [ -a ]

以前に接続されたプロセスまたはコアファイルを解放します。-a オプションを指定すると、プロセスは解放され、停止および中断されたままになります。このようなプロセスを継続するには prun(1) を使用し、再開するには MDB などのデバッガを適用します。デフォルトでは、解放されたプロセスは、MDB の ::run で作成された場合には強制的に終了され、MDB の -p オプション、::attach、または :A dcmds で接続されていた場合には解放および実行状態に設定されます。

::set [ -wF ] [ +/-o option ] [ -s distance ] [ -I path ] [ -L path ] [ -P prompt ]

デバッガの種々のプロパティを取得または設定します。いずれのオプションも指定されていない場合には、デバッガのプロパティの現在の設定が表示されます。::set dcmd は、次のオプションを認識します。

-F

その次のユーザープロセスで、::attach が適用されているプロセスを強制的に引き継ぐ (-F オプションをコマンド行に指定して MDB を実行する場合と同じ)

-I

マクロファイルを検出するためのデフォルトパスを設定する。パス引数は特殊トークンを使用できる。付録 A 「オプション」-I コマンド行オプションの説明を参照

-L

デバッガモジュールを検出するためのデフォルトパスを設定する。パス引数は特殊トークンを使用できる。付録 A 「オプション」-I コマンド行オプションの説明を参照

-o

指定されたデバッガオプションを有効にする。+o 書式が使用されている場合には、そのデバッガオプションを無効にする。オプションの書式文字列については、-o コマンド行オプションとともに、付録 A 「オプション」 に記載してある

-P

コマンドプロンプトを、指定されたプロンプト文字列に設定する

-s

シンボルマッチングディスタンスを指定された距離に設定する。詳細は、付録 A 「オプション」-s コマンド行オプションの説明を参照

-w

ターゲットを書き込み用にもう一度開く (-w オプションをコマンド行に指定して MDB を実行する場合と同じ)。

::sizeof type

指定された型のサイズをバイトで表示します。 type パラメータは C 言語の構造体、共用体、列挙型、基本的な整数型、あるいは、これらの型へのポインタを指定できます。型名には、シンボルの名前解決で説明した逆引用符 (') 有効範囲規則を使用できます。


注 –

この dcmd は、mdb で使用されるように設計された圧縮シンボルデバッグ情報を含むオブジェクトだけに使用できます。現時点ではこの情報を利用できるのは、特定の Solaris カーネルモジュールだけです。この圧縮シンボルデバッグ情報を処理するには、圧縮解除ソフトウェア SUNWzlib (32 ビット) または SUNWzlibx (64 ビット) がインストールされている必要があります。


[ address ] ::stack [ count ]
[ address ] $c [ count ]

C スタックのバックトレースを出力します。この dcmd の前に明示的な address が指定されている場合には、その仮想記憶アドレスから始まるバックトレースを表示します。その他の場合には、代表スレッドのスタックを表示します。オプションのカウント値が引数として指定されている場合には、出力の各スタックフレームに対して、count 引数で指定された数の引数だけが表示されます。


64-bit SPARC のみ –

スタックトレースを要求する場合は、バイアス式フレームポインタ値、つまり、仮想アドレス - (マイナス) 0x7ff をアドレスとして使用してください。


::status

現在のターゲットに関連した情報の概要を出力します。

thread ::tls symbol

指定されたスレッドのコンテキストにおいて、指定された TLS (Thread-Local Storage) シンボル用の記憶領域のアドレスを出力します。スレッド式は、スレッドのサポートで説明したスレッド識別子の 1 つである必要があります。シンボル名には、シンボルの名前解決で説明している任意の有効範囲規則を使用できます。

::typeset [+/- t] variable-name ...

指定された変数に属性を設定します。1 つまたは複数の名前が指定されている場合は、それらを定義して、ドット値に設定します。-t オプションを指定すると、各変数に関連付けられたユーザー定義のタグが設定されます。+t オプションを指定すると、そのタグは削除されます。変数名が何も指定されていない場合には、変数のリストとその値を出力します。

::unload module-name

指定された dmod を読み込み解除します。::dmods dcmd を使用すると、動作中の dmod のリストを出力できます。組み込みモジュールは解除できません。使用中のモジュール、すなわち現在実行中の dcmd を提供しているモジュールは、解除できません。

::unset variable-name ...

定義された変数リストから、指定された変数の設定を解除、すなわち削除します。MDB によってエクスポートされている変数の中には、固定表示と指定されていて、ユーザーが削除できないものがあります。

::vars [-npt]

指定された変数の一覧を表示します。-n オプションを指定すると、その出力は、ゼロ以外の変数に限定されます。-p を指定すると、変数は $< dcmd を使用して、デバッガの再処理に適切な形式で出力されます。このオプションを使用すると、変数をマクロファイルに記録しておき、後でこれらの値を復元できます。-t を指定すると、タグ付き変数だけが出力されます。変数にタグを付けるには、 ::typeset dcmd の -t オプションを使用します。

::version

デバッガのバージョン番号を出力します。

address ::vtop [- a as]

可能な場合、指定された仮想アドレスに対する物理アドレスのマッピングを出力します。::vtop dcmd を利用できるのは、カーネルターゲットを検査しているとき、あるいは、::context dcmd を実行した後で、カーネルクラッシュダンプ内のユーザープロセスを検査しているときだけです。

カーネルコンテキストからカーネルターゲットを検査しているとき、-a オプションを使用すると、仮想アドレスから物理アドレスへの変換で使用される代替アドレス空間構造体のアドレス (as) を指定できます。デフォルトでは、この変換にはカーネルのアドレス空間が使用されます。ダンプに含まれるのがカーネルページだけの場合でも、このオプションはアクティブなアドレス空間に対して利用できます。

[ address ] ::walk walker-name [ variable-name ]

指定された walker を使用して、データ構造体の要素を調べます。::walkers dcmd を使用すると、使用可能な walker を一覧表示できます。walker は、グローバルなデータ構造体について動作する場合もあり、開始アドレスを必要としないものがあります。たとえば、カーネル内の proc 構造体のリストを調べる場合などです。その他の walker は、アドレスが明示的に指定されている固有のデータ構造体上で動作します。たとえば、アドレス空間でポインタを指定して、セグメントのリストを調べる場合です。

対話処理で使用される場合、 ::walk dcmd は、データ構造体内の各要素のアドレスをデフォルト形式で出力します。また、この dcmd は、パイプラインにアドレスリストを提供するときにも使用できます。walker 名には、dcmd と walker の名前解決で説明した逆引用符 “ ' “ 有効範囲規則を使用できます。オプションの variable-name が指定されている場合には、MDB がパイプラインの次のステージを呼び出すときに walk の各ステップが返す値に、指定変数が割り当てられます。

::walkers

使用可能な walker の一覧と、各 walker の簡潔な説明を出力します。

::whence [-v] name ...
::which [-v] name ...

指定された dcmd と walker をエクスポートする dmod を出力します。これらの dcmd を使用すると、指定された dcmd または walker のグローバル定義を現在提供しているのはどの dmod かを判断できます。グローバルな名前解決の詳細については、dcmd と walker の名前解決を参照してください。-v オプションを指定すると、各 dcmd や walker の代替定義を優先順に出力します。

::xdata

現在のターゲットによってエクスポートされた外部データバッファを一覧表示します。外部データバッファは、現在のターゲットに関連付けられた情報を示します。この情報は、標準ターゲット機能ではアクセスできないもので、アドレス空間、シンボルテーブル、レジスタセットなどが含まれています。これらのバッファは、dcmd による使用が可能です。詳細については、mdb_get_xdata()を参照してください。