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.  事件管理

C.  宏

D.  命令参考

assign 命令

本地模式语法

Java 模式语法

attach 命令

语法

连接到运行中的 Java 进程

bsearch 命令

语法

call 命令

本地模式语法

Java 模式语法

cancel 命令

语法

catch 命令

语法

check 命令

语法

clear 命令

语法

collector 命令

语法

collector archive 命令

语法

collector dbxsample 命令

语法

collector disable 命令

语法

collector enable 命令

语法

collector heaptrace 命令

语法

collector hw_profile 命令

语法

collector limit 命令

语法

collector mpitrace 命令

语法

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 命令

语法

索引

check 命令

check 命令用于启用检查内存访问、泄漏或使用,并输出运行时检查 (runtime checking, RTC) 的当前状态。仅在本地模式中有效。

由此命令启用的运行时检查功能可由 debug 命令重置为其初始状态。

语法

check -access

打开访问检查。RTC 报告下列错误:

baf

错误释放

duf

重复释放

maf

未对齐释放

mar

未对齐读

maw

未对齐写

oom

内存不足

rob

从数组越界内存中读

rua

从未分配的内存中读

rui

从未初始化的内存中读

wob

写入到数组越界内存

wro

写入到只读内存

wua

写入到未分配内存

缺省行为是在检测到每个访问错误后停止进程,可使用 rtc_auto_continue dbx 环境变量对此进行更改。如果设置为 on,访问错误将记录到一个文件(文件名由 dbx 环境变量 rtc_error_log_file_name 控制)中。请参见dbxenv 命令

缺省情况下,每个独特访问错误只在第一次发生时进行报告。可使用 dbx 环境变量 rtc_auto_suppress(此变量的缺省设置为 on)更改此行为。请参见dbxenv 命令

check -leaks [-frames n] [-match m]

打开泄漏检查。RTC 报告下列错误:

aib

可能的内存泄漏-指针仅指向块中央

air

可能的内存泄漏-仅寄存器中存在指向块的指针

mel

内存泄漏 - 没有指针指向块

启用了泄漏检查时,程序退出时会自动生成泄漏报告。届时将报告包括可能的泄漏在内的所有泄漏。缺省情况下,会生成简短报告(由 dbx 环境变量 rtc_mel_at_exit 控制)。但可以随时获取泄漏报告(请参见showleaks 命令)。

-frames n 表示在报告泄漏时,最多显示 n 个不同的堆栈帧。-matchm 用于合并泄漏;如果两个或更多泄漏分配时的调用堆栈与 n 帧匹配,则在一个合并泄漏报告中报告这些泄漏。

n 的缺省值为 8 或 m 的值(取较大值)。n 的最大值为 16。m 在 C++ 中的缺省值为 3,在其他程序语言中为 2。

check -memuse [-frames n] [-match m]

-memuse 选项的行为与 -leaks 选项类似,还会启用在程序退出时生成 "blocks in use" 报告 (biu)。缺省情况下,会生成简短的使用的块报告(由 dbx 环境变量 rtc_biu_at_exit 控制)。在程序执行过程中,可以随时查看程序中内存的分配位置(请参见showmemuse 命令)。

-frames n 表示在报告内存使用和泄漏时,最多将显示 n 个不同的堆栈帧。-match m 用于合并这些报告;如果两个或更多泄漏分配时的调用堆栈与 m 帧匹配,则在一个合并内存泄漏报告中报告这些泄漏。

n 的缺省值为 8 或 m 的值(取较大值)。n 的最大值为 16。m 在 C++ 中的缺省值为 3,在其他程序语言中为 2。另请参见 check -leaks

check -all [-frames n] [-match m]

等效于 check -accesscheck -memuse [-frames n] [-match m]

dbx 环境变量 rtc_biu_at_exit 的值不随 check -all 变化,因此在缺省情况下,退出时不生成内存使用报告。有关环境变量 rtc_biu_at_exit 的说明,请参见dbx 命令

check [functions] [files] [loadobjects]

等效于 functionsfilesloadobjects 中的 check -all、suppress all 或 unsuppress all

其中:

functions 是一个或多个函数名。

files 是一个或多个文件名。

loadobjects 是一个或多个装入对象名。

您可使用此命令将运行时检查用于需要的地方。


注 - 为了检测所有错误,RTC 不要求使用 -g 编译程序。但是,有时为了保证准确检测某些错误(通常是从未初始化的内存中读取),需要使用符号 (-g) 信息。因此,如果未提供符号信息,某些错误(a.outrui,共享库的 rui + aib + air)会被禁止。可通过使用 suppressunsuppress 更改此行为。