Sun Studio 12 Update 1:使用 dbx 调试程序

suppress 命令

suppress 命令用于禁止在运行时检查期间报告内存错误。仅在本地模式中有效。

如果 dbx 环境变量 rtc_auto_suppress 为 on,则只报告一次指定位置处的内存错误。

语法

suppress

suppressunsuppress 命令(不包括指定 -d-reset 选项的那些命令)的历史记录。

suppress -d

在未被编译用于调试的函数中禁止的错误列表(缺省禁止)。每个装入对象都有这样一个列表。只能通过使用带 -d 选项的 unsuppress 命令来取消禁止这些错误。

suppress -d errors

通过进一步抑制 errors 来修改所有装入对象的缺省禁止。

suppress -d errors in load_objects

通过进一步禁止 errors 来修改 load_objects 中的缺省禁止。

suppress -last

在错误位置禁止当前错误。

suppress -reset

将缺省禁止设置为初始值(启动时)。

suppress -r id...

删除按 id 指定的取消抑制事件,可通过 unsuppress 命令获取这些事件(请参见 unsuppress 命令)。

suppress -r 0 | all | -all

删除 unsuppress 命令指定的所有取消抑制事件(请参见unsuppress 命令)。

suppress errors

禁止各处的 errors

suppress errors in [ functions ] [ files ] [ load_objects ]

禁止 functions 列表、files 列表和 load_objects 列表中的 errors

suppress errors at line

禁止 line 处的 errors

suppress errors at "file":line

禁止 fileline 处的 errors

suppress errors addr address

禁止 address 位置处的 errors

其中:

address 是内存地址。

errors 由空格分隔开,可以是下列各项的任一组合:

all

所有错误

aib

可能的内存泄漏 - 地址位于块内

air

可能的内存泄漏 - 地址位于寄存器内

baf

错误释放

duf

重复释放

mel

内存泄漏

maf

未对齐释放

mar

未对齐读

maw

未对齐写

oom

内存不足

rob

从数组越界内存中读

rua

从未分配的内存中读

rui

从未初始化的内存中读

wob

写入到数组越界内存

wro

写入到只读内存

wua

写入到未分配内存

biu

使用的块(分配的内存)。尽管不是错误,但可以在 suppress 命令中使用 biu,就像使用 errors 一样。

file 是文件名。

files 是一个或多个文件名。

functions 是一个或多个函数名。

line 是源代码行的编号。

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

有关抑制错误的更多信息,请参见抑制错误

有关取消抑制错误的信息,请参见unsuppress 命令