文档信息
前言
1. dbx 入门
2. 启动 dbx
3. 定制 dbx
4. 查看和导航到代码
5. 控制程序执行
6. 设置断点和跟踪
7. 使用调用栈
8. 求值和显示数据
9. 使用运行时检查
10. 修复并继续
11. 调试多线程应用程序
12. 调试子进程
13. 调试 OpenMP 程序
14. 处理信号
15. 使用 dbx 调试 C++
16. 使用 dbx 调试 Fortran
17. 使用 dbx 调试 Java 应用程序
18. 在机器指令级调试
19. 将 dbx 与 Korn Shell 配合使用
20. 调试共享库
A. 修改程序状态
B. 事件管理
事件处理程序
事件安全
创建事件处理程序
操作事件处理程序
使用事件计数器
设置事件规范
断点事件规范
in function
at [filename: ]line_number
at address_expression
infile filename
infunction function
inmember function inmethod function
inclass classname [-recurse | -norecurse]
inobject object-expression [-recurse | -norecurse]
数据更改事件规范
access mode address-expression [, byte-size-expression ]
change variable
cond condition-expression
系统事件规范
dlopen [ lib-path ] dlclose [ lib-path ]
fault fault
lwp_exit
sig signal
sig signal sub-code
sysin code | name
sysout code | name
sysin | sysout
执行进度事件规范
exit exitcode
next
returns
returns function
step
其他事件规范
attach
detach
lastrites
proc_gone
prog_new
stop
sync
syncrtld
thr_create [thread_id ]
thr_exit
throw
throw type
throw -unhandled
throw -unexpected
timer seconds
事件规范修饰符
-if condition
-resumeone
-in function
-disable
-count n -count infinity
-temp
-instr
-thread thread_id
-lwp lwp_id
-hidden
-perm
分析和二义性
使用预定义变量
对 when 命令有效的变量
$handlerid
对 when 命令和特定事件有效的变量
事件处理程序示例
为存储到数组成员设置断点
执行简单跟踪
在函数内时启用处理程序 (in function)
确定已执行的行数
确定源代码行执行的指令数
事件发生后启用断点
为重放重置应用程序文件
检查程序状态
捕获浮点异常
C. 命令参考
索引
使用 when 命令、stop 命令和 trace 命令创建事件处理程序。(有关详细信息,请参见when 命令、stop 命令和trace 命令。)
stop 是常见术语 when 的简略表达方式。
when event-specification { stop -update; whereami; }
事件规范由事件管理命令 stop、when 和 trace 用于指定相关事件。(请参见设置事件规范。)
大多数 trace 命令都可以使用 when 命令、ksh 功能和事件变量来手动创建。 在需要特定格式的跟踪输出时,这特别有用。
每个命令都返回一个称为处理程序 ID (hid) 的编号。可以使用预定义变量 $newhandlerid 访问此编号。