名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 注意事項 | 使用上の留意点
adb ユーティリティは、対話型の汎用デバッガです。このユーティリティは、ファイルの検査に使用でき、プログラムを実行するための制御環境を提供します。
次のオプションを指定できます。
カーネルメモリーのマッピングを行います。corefile がシステムクラッシュダンプか /dev/mem の場合、または swapfile を使用している場合に使用します。
objectfile と corefile の両方のファイルを作成し、必要に応じて読み取りと書き込みのためにこれらのファイルを開き、adb を使用して修正できるようにします。
$<または $<< (下記参照) によって読み取られるファイルが検索されるディレクトリを、コロンで区切って指定します。デフォルトは、/usr/platform/plat-name/lib/adb:/usr/lib/adb です。ここで、plat-name は、プラットフォームの実装名を示します。plat-name は、uname(1) の -i オプションを使用して検索できます。
adb のプロンプト文字列を指定します。
次のオペランドを指定できます。
通常は実行可能プログラムファイルであり、シンボルテーブルを含めるようにします。このファイルにシンボルテーブルが含まれていない場合でも検査は可能ですが、adb のシンボル関連機能は使用できません。デフォルトの objectfile は a.out です。
objectfile の実行後に作成されるコアイメージファイルを指定します。デフォルトの corefile は core です。
使用されるスワップデバイスのイメージ。これは、-k オプションと共に使用した場合にのみ有効です。
adb ユーティリティは、標準入力からコマンドを読み取って、標準出力に応答を表示します。このユーティリティには、デフォルトのプロンプトはありません。また、QUIT
シグナルは無視されます。INTERRUPT
は、次の adb コマンドを起動します。adb ユーティリティは通常、次の形式のコマンド入力を認識します。
[ address ] [, count ] [ command ] [ ; ]
address と count (指定されている場合) は式であり、それぞれ新しい現在位置と繰り返しカウントを示します。command は、命令と、その後に続く修飾子または修飾子のリストからなります。
シンボル「.」は現在位置を表し、最初は 0 です。デフォルトの count は 1 です。
dot の値
現在の増分値を加算した dot の値
現在の増分値を減算した dot の値
最後に入力された address(以前のバージョンの adb では、'"'が使用されていました)。
数字。接頭辞 0o と0O は、8 進数を示します。0t と 0T は 10 進数、0x と 0X は 16 進数 (デフォルト) を示します。
浮動小数点数
最大 4 文字の ASCII 値
name の値。変数名かレジスタ名のどちらかになります。
シンボルテーブル内のシンボル
exp の値
corefile 内の位置 exp の内容
objectfile 内の位置 exp の内容 (以前のバージョンの adb では、@ が使用されていました)。
整数否定
ビット単位の補数
論理否定
2 項演算子は、左側の項に結合し、その優先順位は単項演算子よりも低くなります。
整数の加算
整数の減算
整数の乗算
整数の除算
ビット単位の論理積 (AND)
ビット単位の包括論理和 (OR)
rhs の次の倍数まで丸められた lhs
名前付き変数は、最初は adb によって設定されますが、その後は使用されません。
最後に出力された値
命令ソースの最後のオフセット部分
変数 1 の以前の値
最後の $< または $<< コマンドのカウント
入力時に、corefile または objectfile のシステムヘッダから次のものが必要に応じて設定されます。
データセグメントの基本アドレス
データセグメントのサイズ
エントリポイント
「マジック」番号
テキストセグメントのサイズ
adb のコマンドは、命令と、その後に続く修飾子または修飾子のリストからなります。
objectfile 内の address から始まる場所を出力します。
corefile 内の address から始まる場所を出力します。
address 自体の値を出力します。
サブプロセスを管理します。
変数またはレジスタに値を割り当てます。
modifier で指定された数量を値のアドレスからとって、変数またはレジスタに割り当てます。modifier には、次のいずれかを指定できます。
符号なしの char
符号なしの short
符号なしの int
符号なしの long
1 のcount で前のコマンドを繰り返します。. を増分します。
シェルエスケープ
次のフォーマット修飾子は、コマンド ?、/、および = に適用されます。フォーマットを指定するには、コマンドにオプションの繰り返しカウントと必要なフォーマット文字を続けます。中括弧 ({ }) は、含まれているコマンドのうち 1 つだけを指定する必要があることを示します。
{ ? / = } [ [ r ] f . . . ]
ここで、r は 10 進数の繰り返しカウントを示し、f は次に示すフォーマット文字のいずれかになります。
('.' 増分値: 2) 8 進数の 2 バイトを出力します。
(4) 8 進数の 4 バイトを出力します。
(2) 符号付き 8 進数を出力します。
(4) long 型符号付き 8 進数を出力します。
(8) 符号付き 8 進数の 8 バイトを表示します。
(8) 符号なし 8 進数の 8 バイトを表示します。
(2) 10 進数で出力します。
(4) long 型 10 進数を出力します。
(8) 符号付き 10 進数の8 バイトを出力します。
(8) 符号なし 10 進数の8 バイトを出力します。
(2) 16 進数の 2 バイトを出力します。
(4) 16 進数の 4 バイトを出力します。
(8) 16 進数の 8 バイトを表示します。
(n) ポインタまたは long 型の値を16進数で出力します (32 ビットプログラムの場合は 4 バイト、64 ビットプログラムの場合は 8 バイトを表示します)。
(2) 符号なし 10 進数として出力します。
(4) long 型符号なし 10 進数を出力します。
(4) 単精度浮動小数点数を出力します。
(8) 倍精度浮動小数点数を出力します。
(1) アドレス指定されたバイトを8進数で出力します。
(1) アドレス指定された文字を出力します。
(1) アドレス指定された文字を ‸ エスケープ規則を使用して出力します。
(n) アドレス指定された文字列を出力します。
(n) 文字列を ‸ エスケープ規則を使用して出力します。
(8) 日付形式の 8 バイトを出力します。
(4) 日付形式の 4 バイトを出力します。
(4) マシン命令として出力します。(SPARC)
(変数) マシン命令として出力します。(IA)
(0) . の値をシンボル形式で出力します。
(n) アドレス指定された値をシンボル形式で出力します。
(0) 次の適切なタブ位置までタブ移動します。
(0) 空白を出力します。
(0) 復帰改行を出力します。
(0) 引用符で囲まれた文字列を出力します。
(0) . を減分します。
(0) . を増分します。
(0) . を 1、減分します。
maskを適用してvalueを比較します。「.」を一致する場所に移動します。
mask を適用して 4 の value 値を比較します。「.」を一致する場所に移動します。
maskを適用して 8 バイトの value を比較します。「.」を一致する場所に移動します。
2 バイトの value をアドレスに書き込みます。
4 バイトの value をアドレスに書き込みます。
8 バイトの value をアドレスに書き込みます。
b1、e1、f1 に新しい値をマッピングします。? または / に * が続く場合、アドレスマッピングの 2 番目のセグメント (b2、e2、f2) は変更されます。
w と同様ですが、一度に 1 バイトだけを書き込みます。
オプションの len は 10 進数で指定します。指定がない場合は、デフォルトで 1 に設定されます。
命令ブレークポイントを設定します。. に address を指定して、到達したら commands を実行します。
書き込み監視ポイント (データブレークポイント) を設定します。. に影響を受ける場所を設定し、範囲 [ address, address+len ] 内のいずれかのバイトに書き込みがあると commands を実行します。
アクセス監視ポイントを設定します。. に影響を受ける場所を設定し、範囲 [ address, address+len ] 内のいずれかのバイトに読み取り、または書き込みがあると commands を実行します。
実行監視ポイントを設定します。. に影響を受ける場所を設定し、範囲 [ address, address+len ] 内のいずれかの命令が実行されると commands を実行します。
objectfile をサブプロセスとして実行します。
address のブレークポイント、または address を含む監視ポイントを削除します。
すべてのブレークポイントと監視ポイントを削除します。
シグナル s でサブプロセスを継続します。
シグナル s でサブプロセスをステップ実行します。
ステップ実行しますが、呼び出し先関数でのステップ実行は行いません。
address によって指定されたシグナルを、サブプロセスに直接渡されたシグナルのリストに追加します。
address によって指定されたシグナルを、サブプロセスに暗黙指定で渡されたリストから削除します。
現在のサブプロセスがある場合は、それを終了 (強制終了) します。
既存のプロセス ID に adb を接続します。(たとえば、0t1234:A は、adb を 10 進プロセス番号 1234 に接続します。)
すでに接続されているプロセスを解放します。
ファイル filename からコマンドを読み取ります。
< に似ていますが、ファイルを閉じなくても、コマンドのファイル内で使用できます。
filename に出力を追加します。このファイルが存在しない場合は、作成されます。
現在の軽量プロセス (LWP) ID を示します。
すべての LWP ID を示します。
adb プロンプト文字列を指定します。
プロセス ID、サブプロセスを停止したシグナル、およびレジスタを出力します。
汎用 CPU レジスタの名前と内容、および pc によってアドレス指定される命令を出力します。
浮動小数点レジスタ 0 〜 15 の名前と内容を出力します。(SPARC)
浮動小数点レジスタ 16 〜 31 の名前と内容を出力します。(SPARC)
浮動小数点レジスタ内容を出力します。$x と $X は、浮動小数点レジスタが出力される精度を決定する count を受け付けます。デフォルト値は 25 です。$X は、$x を使用した場合よりも詳細な出力を作成します。(IA)
浮動小数点レジスタ 32 〜 47 の名前と内容を出力します。(SPARC)
浮動小数点レジスタ 48 〜 63 の名前と内容を出力します。(SPARC)
すべてのブレークポイントと監視ポイント、およびその関連カウント、型、長さ、コマンドを出力します。
C スタックバックトレース。SPARC ベースのシステムでは、adb は、関数に渡されたパラメータの数を判別できません。adb が $c コマンドで選択するデフォルトでは、6 つのパラメータレジスタが示されます。このデフォルトは、$c コマンドに 16 進数を追加して、表示されるパラメータ数を指定することによって変更できます。たとえば、$cf コマンドは、スタックトレース内の関数ごとに 15 のパラメータを出力できます。
$c と同じですが、フレームポインタ値を表示することもできます。
デフォルトの基数を address に設定して、新しい値を報告します。注:address は、(古い) 現在の基数で解釈されます。したがって、「10$d」がデフォルトの基数を変更することはありません。
外部変数の名前と値を出力します。
出力ページ幅を address に設定します (デフォルト値は 80)。
シンボル一致 (symbol match) の限界を address に設定します (デフォルト値は 255)。
すべての整数入力を 8 進数とみなします。
adb を終了します。
0 以外のすべての変数を 8 進数で出力します。
アドレスマップを出力します。
既知のソースファイル名のリストを出力します。
(カーネルデバッグ) 指定の user structure を u で指定されたアドレスにマッピングするように、現在のカーネルメモリーマッピングを変更します。これは、ユーザーの proc 構造体のアドレスです。
最小限の adb の関与で、どのシグナルがサブプロセスに渡されるかを示します。
現在の逆アセンブリとレジスタ表示モードを変更します。オプションは、1 (v8)、2 (generic v9)、4 (v9 plus Sun Ultra-SPARC 固有の命令) です。数値パラメータを省略すると、現在の逆アセンブリモードで情報が出力されます。(SPARC)
-w コマンド行引数が指定されている場合のように、書き込みのために objectfile と corefile を再度開きます。
ファイルのサイズが 2G バイト (2 31 バイト) 以上ある場合の adb の動作については、largefile(5) のマニュアルページを参照してください。
実行中のカーネル上で adb を起動するには、root 次のように入力します。
example# adb -k /dev/ksyms /dev/mem |
/dev/ksyms は、カーネルのシンボルテーブルのイメージを提供する特殊ドライバです。これは、カーネルの状態とデバッグデバイスドライバを調べるために使用できます。詳細については、『Writing Device Drivers』のデバッグに関する章を参照してください。
$< および $<< によってファイルが読み取られるデフォルトディレクトリ。platform-name は、プラットフォームの実装名であり、uname -i を使用して検索できます (uname(1) を参照)。
$< および $<< によって 64 ビット SPARC V9 用のファイルが読み取られるデフォルトディレクトリ。platform-name は、プラットフォームの実装名であり、uname -i を使用して検索できます (uname(1) を参照)。
objectfile オペランドのデフォルト名
corefile オペランドのデフォルト名
カーネルのシンボリックテーブルのイメージを提供する特殊ドライバ
次の属性については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu (32 ビット) |
SUNWcsxu (64 ビット) |
現在のコマンドもフォーマットも存在しない場合、adb は、アクセス不可能なファイル、構文エラー、コマンドの異常終了などについての説明を出力します。
Solaris 8 以降のリリースでは、adb ユーティリティは、新しい mdb(1) ユーティリティへのリンクとして実装される予定です。adb と mdb はどちらも、実行中のオペレーティングシステムやオペレーティングシステムのクラッシュダンプ、ユーザープロセスを検査するために使用できる、下位レベルのデバッガです。新しい mdb ユーティリティは、adb の既存の構文や機能と完全互換です (後方互換) 。また、 adb マクロファイルを処理できます。adb との互換性モードなど、新しい mdb の機能についての詳細は、mdb(1) のマニュアルページを参照してください。adb との互換性モードは、adb リンクが存在して実行される場合にデフォルトで有効になります。
adb ユーティリティは、プラットフォームとリリースに依存します。カーネルコアダンプは、作成時と同じプラットフォーム上で調べる必要があります。
:r コマンドの引数を解釈するためのシェルが起動されないため、カスタムワイルドカードと変数は展開されません。
アドレスに対する型検査はほとんど行われないため、不適切なコンテキストでソースファイルアドレスを使用すると、予期しない結果を生じることがあります。
対処方法としては $cparameter-count コマンドを使用してください。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 注意事項 | 使用上の留意点