JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: dbx コマンドによるデバッグ     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  dbx の概要

2.  dbx の起動

3.  dbx のカスタマイズ

4.  コードの表示とコードへの移動

コードへの移動

ファイルの内容を表示する

関数を表示する

あいまいな関数名をリストから選択する (C++)

複数存在する場合の選択

ソースリストの出力

呼び出しスタックの操作によってコードを表示する

プログラム位置のタイプ

プログラムスコープ

現在のスコープを反映する変数

表示スコープ

表示スコープのコンポーネント

表示スコープの変更

スコープ決定演算子を使用してシンボルを特定する

逆引用符演算子

コロンを重ねたスコープ決定演算子 (C++)

ブロックローカル演算子

リンカー名

シンボルを検索する

シンボルの出現を出力する

実際に使用されるシンボルを決定する

スコープ決定検索パス

スコープ検索規則の緩和

変数、メンバー、型、クラスを調べる

変数、メンバー、関数の定義を調べる

型およびクラスの定義を調べる

オブジェクトファイルおよび実行可能ファイル内のデバッグ情報

オブジェクトファイルの読み込み

モジュールについてのデバッグ情報

モジュールのリスト

ソースファイルおよびオブジェクトファイルの検索

5.  プログラムの実行制御

6.  ブレークポイントとトレースの設定

7.  呼び出しスタックの使用

8.  データの評価と表示

9.  実行時検査

10.  修正継続機能 (fix と cont)

11.  マルチスレッドアプリケーションのデバッグ

12.  子プロセスのデバッグ

13.  OpenMP プログラムのデバッグ

14.  シグナルの処理

15.  dbx を使用してプログラムをデバッグする

16.  dbx を使用した Fortran のデバッグ

17.  dbx による Java アプリケーションのデバッグ

18.  機械命令レベルでのデバッグ

19.  dbx の Korn シェル機能

20.  共有ライブラリのデバッグ

A.  プログラム状態の変更

B.  イベント管理

C.  マクロ

D.  コマンドリファレンス

索引

コードへの移動

プログラムを実行していないときはいつでも、プログラム内の関数やファイルに移動できます。プログラムに含まれるすべての関数またはファイルを表示できます。現在のスコープは プログラムの停止位置に設定されます (「プログラムスコープ」を参照してください)。この機能は、stop at ブレークポイントを設定し、停止したときにソース行を決定する際に便利です。

ファイルの内容を表示する

dbx がプログラムの一部として認識していれば、どのようなファイルでもその内容を表示できます (モジュールまたはファイルが -g オプションでコンパイルされていない場合でも可能です)。ファイルの内容を表示するためには、次のように入力します。

(dbx) file filename

file コマンドを引数を指定しないで使用すると、現在表示中のファイル名が表示されます。

(dbx) file

dbx は、行番号を指定しないと、最初の行からファイルを表示します。

(dbx) file filename ; list line_number

ソースコードの行でブレークポイントを設定する詳細については、「ソースコードの特定の行に stop ブレークポイントを設定する」を参照してください。

関数を表示する

func コマンドを使用すると、関数を表示できます。コマンド func に続けて、関数名を入力します。例:

(dbx) func adjust_speed

func コマンドを引数なしで使用すると、現在表示中の関数が表示されます。

詳細については、func コマンド」を参照してください。

あいまいな関数名をリストから選択する (C++)

C++ の場合、あいまいな名前または多重定義されている関数名を指定してメンバー関数を表示しようとすると、多重定義されているというメッセージが表示され、指定された名前を持つ関数のリストが示されます。表示したい関数の番号を入力します。関数が属している特定クラスを知っている場合は、クラス名と関数名を入力できます。例:

(dbx) func block::block

複数存在する場合の選択

同じスコープレベルから複数のシンボルにアクセスできる場合、dbx は、あいまいさについて報告するメッセージを出力します。

(dbx) func main
(dbx) which C::foo
More than one identifier ’foo’.
Select one of the following:
 0) Cancel
 1) ”a.out”t.cc”C::foo(int)
 2) ”a.out”t.cc”C::foo()
>1
”a.out”t.cc”C::foo(int)

which コマンドのコンテキストでシンボル名のリストから特定のシンボルを選んでも、dbx またはプログラムの状態には影響しません。どのシンボルを選んでも名前が表示されるだけです。

ソースリストの出力

list コマンドは、ファイルまたは関数のソースリストを出力するために使用します。ファイルを検索したあと、list コマンドは、上から number 行を出力します。関数を検索したあと、list コマンドはその行を出力します。

list コマンドの詳細については、list コマンド」を参照してください。

呼び出しスタックの操作によってコードを表示する

プロセスが存在するときにコードを表示する方法としては、さらに「呼び出しスタックを操作する」方法があります。この方法では、スタック操作コマンドを使用して現在スタック上にある関数を表示します。その結果、現時点でアクティブなすべてのルーチンが表示されます。スタックを操作すると、現在の関数とファイルは、スタック関数を表示するたびに変更されます。停止位置は、スタックの「底」にあるものと考えられます。したがって、そこから離れるには up コマンドを使用します。つまり、main 関数または begin 関数に向かって移動します。現在のフレーム方向へ移動するには、down コマンドを使用します。

呼び出しスタックの移動についての詳細は、「スタックを移動してホームに戻る」を参照してください。