使用 dbx 实用程序,可以调试和执行使用 C++、ANSI C 和 FORTRAN 编写的源代码程序。dbx 与调试器接受同样的命令,但使用标准的终端 (TTY) 接口。dbx 和调试器都支持调试多线程程序。有关如何启动 dbx 的说明,请参见 dbx(1) 手册页。有关 dbx 的概述,请参见《Debugging a Program With dbx》。调试器功能在 dbx 的调试器 GUI 的联机帮助中介绍。
表 7–2 中列出的所有 dbx 选项均可支持多线程应用程序。
表 7–2 MT 程序的 dbx 选项
选项 |
操作 |
---|---|
cont at line [-sig signo id] |
在包含信号 signo 的 line 中继续执行操作。id(如果存在)指定哪个线程或 LWP 继续操作。缺省值为 all。 |
lwp |
显示当前的 LWP。切换到给定 LWP [lwpid]。 |
lwps |
列出当前进程中所有的 LWP。 |
next ... tid |
单步执行给定线程。跳过函数调用时,所有的 LWP 都会在该函数调用期间隐式恢复。不能单步执行非活动线程。 |
next ... lid |
单步执行给定 LWP。跳过函数时不会隐式恢复所有 LWP。所含的给定线程处于活动状态的 LWP。跳过函数时不会隐式恢复所有 LWP。 |
step... tid |
单步执行给定线程。跳过函数调用时,所有的 LWP 都会在该函数调用期间隐式恢复。不能单步执行非活动线程。 |
step... lid |
单步执行给定 LWP。跳过函数时不会隐式恢复所有 LWP。 |
stepi... lid |
给定的 LWP。 |
stepi... tid |
所含的给定线程处于活动状态的 LWP。 |
thread |
显示当前线程。切换到线程 tid。在下面所有的变体中,可选的 tid 表示当前线程。 |
thread -info [ tid ] |
列显有关给定线程的所有已知信息。 |
thread -blocks [ tid ] |
列显阻塞其他线程的给定线程持有的所有锁定。 |
thread -suspend [ tid ] |
使给定线程进入暂停状态。 |
thread -resume [ tid ] |
取消暂停给定线程。 |
thread -hide [ tid ] |
隐藏给定线程或当前线程。该线程不会出现在通用的 threads 列表中。 |
thread -unhide [ tid ] |
取消隐藏给定线程或当前线程。 |
thread -unhide all |
取消隐藏所有线程。 |
threads |
列显所有已知线程的列表。 |
threads -all |
列显通常不会列显的线程(僵线程)。 |
threads -mode all|filter |
控制在缺省情况下,threads 是列显所有线程,还是过滤线程。 |
threads -mode auto|manual |
实现线程列表的自动更新。 |
threads -mode |