Sun Studio 12:使用 dbx 调试程序

lwp 命令

lwp 命令用于列出或更改当前 LWP(lightweight process,轻量级进程)。仅在本地模式中有效。


注 –

只能在 Solaris 平台上执行 lwp 命令。


语法

lwp

显示当前 LWP。

lwp lwp_id

切换到 LWP lwp_id

lwp -info

显示当前 lwp 的名称、位置和屏蔽信号。

lwp [lwp_id] -setfp address_expression

dbx 告知 fp 寄存器具有 address_expression 值。调试核心转储文件时,不会更改正在调试的程序的状态,此时 assign $fp=... 不可用。恢复执行时,使用 -setfp 选项设置的帧指针将被重置为其初始值。

lwp [lwp_id] -resetfp

根据当前进程或核心转储文件中的寄存器值设置帧指针逻辑值,从而撤消前一个 lwp -setfp 命令的作用。

其中:

lwp_id 是轻量级进程的标识符。

如果该命令与 lwp_id 与选项一起使用,则会对 lwp_id 指定的 LWP 执行相应的操作,但是不会更改当前的 LWP。

当 LWP 的帧指针 (fp) 已损坏时,-setfp-resetfp 选项很有用。这种情况下,dbx 无法正常重建调用栈以及对局部变量求值。这些选项在调试核心转储文件时发挥作用,此时 assign $fp=... 不可用。

要更改正在调试的应用程序可访问的 fp 寄存器,请使用 assign $fp=address_expression 命令。