Sun Studio 12:使用 dbx 调试程序

启动 dbx 和装入程序

要启动 dbx,请在 shell 提示符下键入 dbx 命令:


$ dbx

要启动 dbx 并装入要调试的程序:


$ dbx program_name

要启动 dbx 并装入 Java 代码和 C JNI 代码或 C++ JNI 代码混编的程序:


$ dbx program_name{.class | .jar}

可使用 dbx 命令启动 dbx 并通过指定进程 ID 将其连接到运行中的进程。


$ dbx - process_id

如果不知道进程的进程 ID,请在 dbx 命令中加入 pgrep 命令来查找并连接至进程。例如:


$ 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

要将 dbx 连接到包含 Java 代码和 C JNI(Java Native Interface,Java 本地接口)代码或 C++ JNI 代码的运行中的进程:


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

有关 debug 命令的更多信息,请参见debug 命令