JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:使用 dbx 调试程序     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

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.  宏

D.  命令参考

索引

事件处理程序

事件管理是建立在处理程序概念的基础上。该名称的命名源自硬件中断处理程序。每个事件管理命令通常都会创建一个处理程序,它由事件规范和一系列副作用操作组成。(请参见设置事件规范。)事件规范指定将触发处理程序的事件。

发生事件并触发了处理程序时,处理程序会根据事件规范中包括的修饰符来评估事件。(请参见事件规范修饰符。)如果事件满足修饰符施加的条件,则将执行处理程序的副作用操作(即处理程序“触发”)。

在特定行设置断点便是一个将程序事件与 dbx 操作关联的示例。

最普通的创建处理程序的方式是使用 when 命令。

when event-specification {action; ... }

本章中的示例说明如何使用 when 语句编写命令(如 stopstepignore)。这些示例的目的在于说明 when 命令与底层处理程序机制的灵活性,但实际应用中并不一定要严格遵循这些示例。