Oracle® Solaris Studio 12.4:使用 dbx 调试程序

退出打印视图

更新时间: 2015 年 1 月
 
 

了解多线程调试

dbx 通过检测程序是否利用 libthread.so 来识别多线程程序。程序对 libthread.so 的使用方法有两种:一是通过 -lthread-mt 对其进行显式编译;二是通过 -lpthread 对其进行隐式编译。

检测到多线程程序时,dbx 会尝试装入 libthread_db.so,它是一个专门用于进行线程调试的系统库,位于 /usr/lib 目录下。

dbx 是同步式的;所以当某个线程或轻量级进程 (lightweight process, LWP) 停止时,所有其他线程和 LWP 也会相应停止。 我们有时将这种行为称作 "stop the world" 模型。


注 -  有关多线程编程和 LWP 的信息,请参见 Oracle Solaris《多线程编程指南》。