oracle home
Oracle
®
Solaris Studio 12.4:使用 dbx 调试程序
退出打印视图
Search Term
搜索范围:
本文档
整个文档库
» ...
Documentation Home
»
Oracle Solaris Studio 12.4 Information Library ...
»
Oracle
®
Solaris Studio 12.4:使用 ...
»
使用运行时检查
»
使用运行时检查
更新时间: 2015 年 1 月
Oracle
®
Solaris Studio 12.4:使用 dbx 调试程序
文档信息
使用本文档
产品文档库
反馈
第 1 章 dbx 入门
编译调试代码
启动 dbx 或 dbxtool 和装入程序
在 dbx 中运行程序
使用 dbx 调试程序
检查信息转储文件
设置断点
单步执行程序
查看调用堆栈
检查变量
查找内存访问问题和内存泄漏
退出 dbx
访问 dbx 联机帮助
第 2 章 启动 dbx
启动调试会话
调试信息转储文件
在相同的操作环境中调试信息转储文件
如果信息转储文件被截断
调试不匹配的信息转储文件
消除共享库问题和调试不匹配的信息转储文件
使用进程 ID
dbx 启动序列
设置启动属性
将编译时目录映射到调试时目录
设置 dbx 环境变量
创建自己的 dbx 命令
编译调试程序
使用 g 选项进行编译
使用独立的调试文件
如何创建独立的调试文件
辅助文件(仅限 Oracle Solaris)
调试优化代码
参数与变量
内联函数
编译时未使用 -g 选项的代码
共享库要求使用 -g 选项以获得完全 dbx 支持
完全剥离的程序
退出调试
停止进程执行
从 dbx 中分离进程
中止程序而不终止会话
保存和恢复调试运行
使用 save 命令
将系列调试运行另存为检查点
恢复已保存的运行
使用 replay 保存和恢复
第 3 章 定制 dbx
使用 dbx 初始化文件
创建 .dbxrc 文件
初始化文件示例
设置 dbxenv 变量
dbxenv 变量和 Korn Shell
第 4 章 查看和导航到代码
导航到代码
导航到文件
导航到函数
从 C++ 二义函数名称列表中选择
在多个具体值中进行选择
输出源代码列表
在调用堆栈中移动以导航到代码
程序位置的类型
程序作用域
反映当前作用域的变量
访问作用域
访问作用域的组件
更改访问作用域
使用作用域转换操作符限定符号
反引号操作符
C++ 双冒号作用域转换操作符
块局部操作符
链接程序名
查找符号
输出符号具体值列表
确定 dbx 使用哪个符号
作用域转换搜索路径
放宽作用域查找规则
查看变量、成员、类型和类
查找变量、成员和函数的定义
查找类型和类的定义
对象文件和可执行文件中的调试信息
对象文件装入
用于支持调试的编译器和链接程序选项
索引 DWARF (xs[={yes|no}])
独立的调试文件 (z ancillary[=outfile])
最大程度地减少调试信息
列出模块的调试信息
列出模块
查找源文件和对象文件
第 5 章 控制程序执行
运行程序
将 dbx 连接到正在运行的进程
从进程中分离 dbx
单步执行程序
控制单步执行行为
步入特定函数或最后一个函数
继续执行程序
调用函数
调用安全性
使用 Ctrl+C 停止进程
事件管理
第 6 章 设置断点和跟踪
设置断点
在源代码行设置断点
在函数中设置断点
在 C++ 程序中设置多个断点
在不同类的成员函数中设置断点
在类的所有成员函数中设置断点
在非成员函数中设置多个断点
在对象中设置断点
设置数据更改断点(监视点)
访问地址时停止执行
变量更改时停止执行
条件停止执行
在断点上设置过滤器
使用条件过滤器限定断点
使用调用方过滤器限定断点
过滤器和多线程
跟踪执行
设置跟踪
控制跟踪速度
将跟踪输出定向到文件
在行中执行 dbx 命令
在动态装入的库中设置断点
列出和删除断点
列出断点和跟踪
使用处理程序 ID 号删除特定断点
启用和禁用断点
效率考虑事项
第 7 章 使用调用堆栈
确定在堆栈中的位置
堆栈中移动和返回起始位置
在堆栈中上下移动
在堆栈中上移
在堆栈中下移
移到特定帧
弹出调用堆栈
隐藏堆栈帧
显示和读取堆栈跟踪
第 8 章 求值和显示数据
求变量和表达式的值
验证 dbx 使用的变量
当前函数作用域之外的变量
输出变量、表达式或标识符的值
输出 C++ 指针
对 C++ 程序中未命名参数求值
解除指针引用
监视表达式
停止显示(取消显示)
为变量赋值
对数组求值
数组分片
C 和 C++ 的数组分片语法
Fortran 数组分片语法
使用分片
使用跨距
使用美化输出
调用美化输出
基于调用的美化输出
美化输出函数的注意事项
可能的故障
Python 美化输出过滤器 (Oracle Solaris)
在 Oracle Solaris 上使用 Python
Python 美化输出 API 文档
第 9 章 使用运行时检查
运行时检查功能
何时使用运行时检查
运行时检查要求
使用运行时检查
启用内存使用和内存泄漏检查
启用内存访问检查
启用所有运行时检查
禁用运行时检查
运行程序
使用内存访问
理解内存访问错误报告
内存访问错误
使用内存泄漏检查
检测内存泄漏错误
可能的泄漏
检查泄漏
理解内存泄漏报告
生成泄漏报告
组合泄漏
修复内存泄漏
利用内存使用检查
抑制错误
禁止的类型
按作用域和类型抑制
抑制上一错误
限制报告的错误数
禁止错误示例
缺省禁止
使用抑制来管理错误
对子进程使用运行时检查
对连接的进程使用运行时检查
系统运行的 Oracle Solaris 上的连接进程
运行 Linux 的系统上的连接进程
结合使用修复并继续功能与运行时检查
运行时检查应用编程接口
在批处理模式下使用运行时检查
bcheck 语法
bcheck 示例
直接在 dbx 中启用批处理模式
故障排除提示
运行时检查限制
使用更多的符号和调试信息提高性能
SIGSEGV 和 SIGALTSTACK 信号在 x86 平台上受限制
当 8 MB 的所有现有代码中具有足够的修补程序区时性能将提高(仅限 SPARC 平台)。
运行时检查错误
访问错误
错误释放 (baf) 错误
重复释放 (duf) 错误
未对齐释放 (maf) 错误
未对齐读 (mar) 错误
未对齐写 (maw) 错误
内存不足 (oom) 错误
从数组越界中读 (rob) 错误
从未分配的内存中读 (rua) 错误
从未初始化的内存中读 (rui) 错误
写入到数组越界内存 (wob) 错误
写入到只读内存 (wro) 错误
写入到未分配内存 (wua) 错误
内存泄漏错误
地址位于块内 (aib) 错误
地址位于寄存器内 (air) 错误
内存泄漏 (mel) 错误
第 10 章 修复并继续
使用修复并继续
修复并继续如何操作
使用修复并继续修改源代码
修复程序
修复文件
修复后继续
更改已执行的函数
更改一个尚未被调用的函数
更改当前正在执行的函数
更改当前位于堆栈中的函数
修复后更改变量
修改头文件
修复 C++ 模板定义
第 11 章 调试多线程应用程序
了解多线程调试
线程信息
线程和 LWP 状态
查看另一线程的上下文
查看线程列表
恢复执行
了解线程创建活动
了解 LWP 信息
第 12 章 调试子进程
连接到子进程
跟随 exec 函数
跟随 fork 函数
与事件交互
第 13 章 调试 OpenMP 程序
编译器如何转换 OpenMP 代码
可用于 OpenMP 代码的 dbx 功能
单步步入并行区域
输出变量和表达式
输出区域和线程信息
将并行区域的执行序列化
使用堆栈跟踪
使用 dump 命令
使用事件
同步事件
其他事件
OpenMP 代码的执行序列
第 14 章 处理信号
了解信号事件
捕获信号
更改缺省信号列表
捕获 FPE 信号(仅限 Oracle Solaris)
确定发生异常的位置
确定导致异常的原因
向程序发送信号
自动处理信号
第 15 章 使用 dbx 调试 C++
使用 dbx 调试 C++
dbx 中的异常处理
异常处理命令
exception 命令
intercept 命令
unintercept 命令
whocatches 命令
异常处理示例
使用 C++ 模板调试
模板示例
C++ 模板的命令
whereis 命令
whatis 命令
stop inclass 命令
stop infunction 命令
stop in 命令
call 命令
print 表达式
list 表达式
第 16 章 使用 dbx 调试 Fortran
调试 Fortran
当前过程和文件
大写字母
样例 dbx 会话
如何运行样例 dbx 会话
调试段故障
使用 dbx 找出问题
定位异常
跟踪调用
处理数组
Fortran 可分配数组
显示内部函数
显示复杂表达式
显示区间表达式
显示逻辑运算符
查看 Fortran 派生类型
Fortran 派生类型的指针
面向对象的 Fortran
可分配的标量类型
第 17 章 使用 dbx 调试 Java 应用程序
使用 dbx 调试 Java 代码
使用 dbx 调试 Java 代码的功能
使用 dbx 调试 Java 代码的限制
Java 调试的环境变量
开始调试 Java 应用程序
调试类文件
调试 JAR 文件
调试有包装器的 Java 应用程序
将 dbx 连接到正在运行的 Java 应用程序
连接到运行中的 Java 进程
调试内嵌 Java 应用程序的 C 应用程序或 C++ 应用程序
将参数传递给 JVM 软件
指定 Java 源文件的位置
指定 C 源文件或 C++ 源文件的位置
为使用定制类加载器的类文件指定路径
在 Java 方法中设置断点
在本地 (JNI) 代码中设置断点
定制 JVM 软件的启动
指定 JVM 软件的路径名
将运行参数传递给 JVM 软件
指定 Java 应用程序的定制包装器
使用接受命令行选项的定制包装器
使用不接受命令行选项的定制包装器
指定 64 位 JVM 软件
调试 Java 代码的 dbx 模式
从 Java 或 JNI 模式切换到本地模式
中断执行时切换模式
在 Java 模式下使用 dbx 命令
dbx 命令中的 Java 表达式求值
dbx 命令使用的静态信息和动态信息
在 Java 模式和本地模式下具有完全相同语法和功能的命令
在 Java 模式下有不同语法的命令
只在 Java 模式下有效的命令
第 18 章 在计算机指令级调试
在计算机指令级使用 dbx
检查内存的内容
examine 或 x 命令用法
使用地址
使用格式
使用计数
使用地址的示例
dis 命令用法
listi 命令用法
在计算机指令级单步执行和跟踪
在计算机指令级单步执行
在计算机指令级跟踪
在计算机指令级设置断点
在地址处设置断点
regs 命令用法
平台特定寄存器
SPARC 寄存器信息
x86 寄存器信息
AMD64 寄存器信息
第 19 章 将 dbx 与 Korn Shell 配合使用
ksh-88 功能未实现
ksh-88 扩展
重命名的命令
编辑函数的再绑定
第 20 章 调试共享库
动态链接程序
链接映射
启动序列和 .init 段
过程链接表
修复并继续
在共享库中设置断点
在显式装入的库中设置断点
附录 A 修改程序状态
在 dbx 下运行程序的影响
更改程序状态的命令
assign 命令
pop 命令
call 命令
print 命令
when 命令
fix 命令
cont at 命令
附录 B 事件管理
事件处理程序
创建事件处理程序
操作事件处理程序
使用事件计数器
事件安全
设置事件规范
断点事件规范
in 事件规范
at 事件规范
infile 事件规范
infunction 事件规范
inmember 事件规范
inmethod 事件规范
inclass 事件规范
inobject 事件规范
数据更改事件规范
access 事件规范
change 事件规范
cond 事件规范
系统事件规范
dlopen 和 dlclose 事件规范
fault 事件规范
lwp_exit 事件规范
sig 事件规范
sysin 事件规范
sysout 事件规范
sysin | sysout 事件规范
执行进度事件规范
exit 事件规范
next 事件规范
returns 事件规范
step 事件规范
throw 事件规范
跟踪线程事件规范
omp_barrier 事件规范
omp_taskwait 事件规范
omp_ordered 事件规范
omp_critical 事件规范
omp_atomic 事件规范
omp_flush 事件规范
omp_task 事件规范
omp_master 事件规范
omp_single 事件规范
其他事件规范
attach 事件规范
detach 事件规范
lastrites 事件规范
proc_gone 事件规范
prog_new 事件规范
stop 事件规范
sync 事件规范
syncrtld 事件规范
thr_create [thread-ID] 事件规范
thr_exit 事件规范
timer 事件规范
事件规范修饰符
-if 修饰符
-resumeone 修饰符
-in 修饰符
-disable 修饰符
-count n、-count infinity 修饰符
-temp 修饰符
-instr 修饰符
-thread 修饰符
-lwp 修饰符
-hidden 修饰符
-perm 修饰符
解析和二义性
使用预定义变量
对 when 命令有效的变量
$handlerid
对 when 命令和特定事件有效的变量
事件处理程序示例
为存储到数组成员设置断点
执行简单跟踪
在函数内时启用处理程序
确定已执行的行数
确定源代码行执行的指令数
事件发生后启用断点
为重放重置应用程序文件
检查程序状态
捕获浮点异常
附录 C 宏
宏扩展的其他用途
宏定义
编译器和编译器选项
功能方面的权衡
限制
略读 (skimming) 错误
使用 pathmap 命令改进略读 (skimming)
附录 D 命令参考
assign 命令
本地模式语法
Java 模式语法
attach 命令
语法
bsearch 命令
语法
call 命令
本地模式语法
Java 模式语法
cancel 命令
catch 命令
语法
check 命令
语法
access 选项
leaks 选项
memuse 选项
all 选项
clear 命令
语法
collector 命令
语法
collector archive 命令
语法
collector dbxsample 命令
语法
collector disable 命令
collector enable 命令
collector heaptrace 命令
语法
collector hwprofile 命令
语法
collector limit 命令
语法
collector pause 命令
collector profile 命令
语法
collector resume 命令
collector sample 命令
语法
collector show 命令
语法
collector status 命令
collector store 命令
语法
collector synctrace 命令
语法
collector tha 命令
语法
collector version 命令
语法
cont 命令
语法
dalias 命令
语法
dbx 命令
本地模式语法
Java 模式语法
选项
dbxenv 命令
语法
debug 命令
本地模式语法
Java 模式语法
选项
delete 命令
语法
detach 命令
本地模式语法
Java 模式语法
dis 命令
语法
选项
display 命令
本地模式语法
Java 模式语法
down 命令
语法
dump 命令
语法
edit 命令
语法
examine 命令
语法
exception 命令
语法
exists 命令
语法
file 命令
语法
files 命令
本地模式语法
Java 模式语法
fix 命令
语法
fixed 命令
fortran_modules 命令
语法
frame 命令
语法
func 命令
本地模式语法
Java 模式语法
funcs 命令
语法
gdb 命令
语法
handler 命令
语法
hide 命令
语法
ignore 命令
语法
import 命令
语法
intercept 命令
语法
java 命令
语法
jclasses 命令
语法
joff 命令
jon 命令
jpkgs 命令
kill 命令
语法
language 命令
语法
line 命令
语法
示例
list 命令
语法
选项
示例
listi 命令
loadobject 命令
语法
loadobject -dumpelf 命令
语法
loadobject -exclude 命令
语法
loadobject -hide 命令
语法
loadobject -list 命令
语法
loadobject -load 命令
语法
loadobject -unload 命令
语法
loadobject -use 命令
语法
lwp 命令
语法
lwps 命令
macro 命令
语法
mmapfile 命令
语法
示例
module 命令
语法
modules 命令
语法
native 命令
语法
next 命令
本地模式语法
Java 模式语法
nexti 命令
语法
omp_loop 命令
omp_pr 命令
语法
omp_serialize 命令
语法
omp_team 命令
语法
omp_tr 命令
语法
pathmap 命令
语法
示例
pop 命令
语法
print 命令
本地模式语法
Java 模式语法
proc 命令
语法
prog 命令
语法
quit 命令
语法
regs 命令
语法
示例(SPARC 平台)
replay 命令
语法
rerun 命令
语法
restore 命令
语法
rprint 命令
语法
rtc showmap 命令
rtc skippatch 命令
语法
run 命令
本地模式语法
Java 模式语法
runargs 命令
语法
save 命令
语法
scopes 命令
search 命令
语法
showblock 命令
语法
showleaks 命令
语法
showmemuse 命令
语法
source 命令
语法
status 命令
语法
示例
step 命令
本地模式语法
Java 模式语法
stepi 命令
语法
stop 命令
语法
本地模式语法
Java 模式语法
stopi 命令
语法
suppress 命令
语法
sync 命令
语法
syncs 命令
thread 命令
本地模式语法
Java 模式语法
threads 命令
本地模式语法
Java 模式语法
trace 命令
语法
本地模式语法
Java 模式语法
tracei 命令
语法
uncheck 命令
语法
undisplay 命令
本地模式语法
Java 模式语法
unhide 命令
语法
unintercept 命令
语法
unsuppress 命令
语法
unwatch 命令
语法
up 命令
语法
use 命令
watch 命令
语法
whatis 命令
本地模式语法
Java 模式语法
when 命令
语法
本地模式语法
Java 模式语法
wheni 命令
语法
where 命令
本地模式语法
Java 模式语法
whereami 命令
语法
whereis 命令
语法
which 命令
语法
whocatches 命令
语法
索引
索引 数字和符号
索引 A
索引 B
索引 C
索引 D
索引 E
索引 F
索引 G
索引 H
索引 I
索引 J
索引 K
索引 L
索引 M
索引 N
索引 O
索引 P
索引 Q
索引 R
索引 S
索引 T
索引 U
索引 V
索引 W
索引 X
语言:
简体中文
使用运行时检查
要使用运行时检查,请在运行程序前启用要使用的检查类型。
上一页
下一页