Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

dbx または dbxtool を起動してプログラムを読み込む

dbxを起動するには、シェルプロンプトで dbx を入力します。


$ dbx

dbxtool を起動するには、シェルプロンプトに dbxtool コマンドを入力します。


$ dbxtool

dbx を起動してデバッグ対象プログラムを読み込むには、次を入力します。


$ dbx program_name

dbxtool を起動してデバッグ対象プログラムを読み込むには、次を入力します。


$ dbxtool program_name

dbx を起動して、Java コードおよび C JNI コードまたは C++ JNI コードが混在する プログラムを読み込むには、次のように入力します。


$ dbx program_name{.class | .jar}

dbx コマンドを使用すると、dbx を起動し、プロセス ID で指定した実行中プロセスに接続できます。


$ dbx - process_id

dbxtool コマンドを使用すると、dbx が起動し、プロセス ID で指定した実行中プロセスに接続できます。


$ dbxtool - process_id

プロセスの ID がわからない場合、dbx コマンドに pgrep コマンドを含めることで、ID を調べてプロセスに接続します。次に例を示します。


$ dbx - `pgrep Freeway`
Reading -
Reading ld.so.1
Reading libXm.so.4
Reading libgen.so.1
Reading libXt.so.4
Reading libX11.so.4
Reading libce.so.0
Reading libsocket.so.1
Reading libm.so.1
Reading libw.so.1
Reading libc.so.1
Reading libSM.so.6
Reading libICE.so.6
Reading libXext.so.0
Reading libnsl.so.1
Reading libdl.so.1
Reading libmp.so.2
Reading libc_psr.so.1
Attached to process 1855
stopped in _libc_poll at 0xfef9437c
0xfef9437c: _libc_poll+0x0004:   ta     0x8
Current function is main
   48   XtAppMainLoop(app_context);
(dbx)

dbx コマンドと起動オプションの詳細については、dbx コマンド」および dbx(1) マニュアルページを参照するか、dbx -h と入力してください。

すでに dbx を実行している場合、debug コマンドにより、デバッグ対象プログラムを読み込むか、デバッグしているプログラムを別のプログラムに切り替えることができます。


(dbx) debug program_name

Java コードおよび C JNI コードまたは C++ JNI コードを含むプログラムを読み込むかそれに切り替える場合は、次を入力します。


(dbx> debug program_name{.class | .jar}

すでに dbx を実行している場合、debug コマンドにより、dbx を実行中プロセスに接続することもできます。


(dbx) debug program_name process_id

Java コードと C JNI (Java Native Interface) コードまたは C++ JNI コードの混在する実行中プロセスに dbx を接続するには、次のように入力します。


(dbx) debug program_name{.class | .jar} process_id

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