Sun Studio 12 Update 1:使用 dbx 调试程序

dbx 连接到正在运行的进程

可能需要调试已经运行的程序。如果属于下列情况,便需要连接正在运行的进程:

通过将程序的 process_id 编号用作 dbx debug 命令的一个参数,可以将 dbx 连接到正在运行的程序。

程序调试完毕后,便可以使用 detach 命令来解除 dbx 对程序的控制,而无需终止进程。

如果在将 dbx 连接到正在运行的进程后退出 dbxdbx 会在终止前隐式分离。

要将 dbx 连接到独立于 dbx 运行的程序,可以使用 attach 命令或 debug 命令。

要将 dbx 连接到已经运行的进程,请键入:


(dbx) debug program_name process_id


(dbx) attach process_id

可以用一个 –(破折号)代替 program_namedbx 将自动查找与进程 ID 相关联的程序并将其载入。

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

如果 dbx 未运行,可通过键入以下命令来启动 dbx


% dbx program_name process_id

dbx 连接到程序后,程序便停止执行。将其他程序装入 dbx 时,可以检查该程序。可以使用任何事件管理或进程控制命令来调试该程序。

如果在调试现有进程时将 dbx 连接到一个新进程,会出现下列情况:

如果要将 dbx 连接到的进程由于 SIGSTOP 信号、SIGTSTOP 信号、SIGTTIN 信号或 SIGTTOUT 信号而停止,则连接会成功,并显示类似以下的消息:

dbx76: warning: Process is stopped due to signal SIGSTOP

该进程是可检查的,但是要恢复它,您需要使用 cont 命令向其发送 SIGCONT 信号:


(dbx) cont -sig cont

可以对具有某些异常的连接的进程使用运行时检查。请参见对连接的进程使用运行时检查