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

语法

索引

stop 命令

stop 命令用于设置源码级断点。

语法

stop 命令的通用语法如下:

stop event_specification [modifier]

发生指定事件时,停止进程。

本地模式语法

下面的特定语法是在本地模式下有效的其中一些较重要的语法。有关其他事件,请参见设置事件规范

stop [ -update ]

立刻停止执行。仅在 when 命令的主体中有效。

stop -noupdate

立刻停止执行,但不更新 Oracle Solaris Studio IDE 调试器窗口。

stop access mode address_expression [, byte_size_expression ]

在访问了通过 address_expression 指定的内存时停止执行。另请参见访问地址时停止执行

stop at line-number

line_number 处停止执行。另请参见在源代码行设置 stop 断点

stop change variable

variable 的值发生了更改时停止执行。

stop cond condition_expression

condition_expression 表示的条件的求值结果为 true 时停止执行。

stop in function

调用 function 时停止执行。另请参见在函数中设置 stop 断点

stop inclass class_name [ -recurse | -norecurse ]

仅限于 C++: 对类、结构、联合或模板类的所有成员函数设置断点。-norecurse 是缺省值。如果指定 -recurse,则包括基类。另请参见在类的所有成员函数中设置断点

stop infile file_name

调用 file_name 中的任何函数时停止执行。

stop infunction name

仅限于 C++: 对所有非成员函数 name 设置断点。

stop inmember name

仅限于 C++:对所有成员函数 name 设置断点。请参见在不同类的成员函数中设置断点

stop inobject object_expression [ -recurse | -norecurse ]

仅限于 C++: 在从对象 object_expression 调用类及其所有基类的任何非静态方法的入口处设置断点。-recurse 是缺省值。如果指定 - norecurse,则不包括基类。另请参见在对象中设置断点

line_number 是源代码行的编号。

function 是函数名。

class_name 是 C++ 类、结构、联合或模板类的名称。

mode 指定内存访问模式。可由以下一个或所有字母组成:

r

已读取指定地址处的内存。

w

已写入内存。

x

已执行内存。

mode 也可以包含:

a

访问后停止进程(缺省值)。

b

访问前停止进程。

name 是 C++ 函数的名称。

object_expression 标识的是 C++ 对象。

variable 是变量名。

下列修饰符在本地模式中有效。

-if condition_expression

只有在 condition_expression 的求值结果为 true 时,才会发生指定的事件。

-in function

只有在 function 范围内发生指定事件时,执行才会停止。

-count number

从 0 开始,每次发生事件时,计数器的计数便会增加。达到 number 时,执行便停止,且计数器重置为 0。

-count infinity

从 0 开始,每次发生事件时,计数器的计数便会增加。执行没有停止。

-temp

创建发生事件时会删除的临时断点。

-disable

创建禁用状态的断点。

-instr

执行指令级变量。例如,step 变为指令级单步执行,而 at 使用文本地址而不是行号作为参数。

-perm

使相应事件在 debug 中保持持久性。有些事件(如断点)不适合保持持久性。delete all 不会删除持久性的处理程序,可使用 delete hid

-hidden

通过 status 命令隐藏事件。一些导入模块可能会选择使用它。可使用 status -h 查看它们。

-lwp lwp_id

只有在给定的 LWP 中发生指定的事件时,执行才会停止。

-thread thread_id

只有在给定的线程中发生指定的事件时,执行才会停止。

Java 模式语法

下列特定语法在 Java 模式中有效。

stop access mode class_name.field_name

访问了 class_name .field_name 指定的内存时停止执行。

stop at line_number

line_number 处停止执行。

stop at file_name:line_number

file_name 中的 line_number 处停止执行。

stop change class_name.field_name

class_name 中的 field_name 值发生了更改时停止执行。

stop classload

在加载任何类时停止执行。

stop classload class_name

装入 class_name 时停止执行。

stop classunload

在卸载任何类时停止执行。

stop classunload class_name

卸载 class_name 时停止执行。

stop cond condition_expression

condition_expression 表示的条件的求值结果为 true 时停止执行。

stop in class_name.method_name

输入了 class_name.method_name 且将要执行第一行时停止执行。如果未指定参数且重载方法,则会显示方法列表。

stop in class_name.method_name([ parameters])

输入了 class_name.method_name 且将要执行第一行时停止执行。

stop inmethod class_name.method_name

对所有非成员方法 class_name.method_name 设置断点。

stop inmethod class_name.method_name ([ parameters])

对所有非成员方法 class_name.method_name 设置断点。

stop throw

抛出了 Java 异常时停止执行。

stop throw type

抛出了 type 类型的 Java 异常时停止执行。

其中:

class_name 是 Java 类的名称,可以使用包路径(使用句点 (.) 作为限定符,例如 test1.extra.T1.Inner),也可以使用全路径名(前面加磅符号 (#),并使用斜线 (/) 和美元符号 ($) 作为限定符,例如 #test1/extra/T1$Inner)。如果使用 $ 限定符,请使用引号将 class_name 引起来。

condition_expression 可以是任何表达式,但其求值结果必须为整型。

field_name 是类中字段的名称。

file_name 是文件名。

line_number 是源代码行的编号。

method_name 是 Java 方法的名称。

mode 指定内存访问模式。可由以下一个或所有字母组成:

r

已读取指定地址处的内存。

w

已写入内存。

mode 也可以包含:

b

访问前停止进程。

程序计数器将指向违例指令。

parameters 是方法的参数。

type 是 Java 异常的类型。类型可以是 -unhandled-unexpected

下列修饰符在 Java 模式中有效:

-if condition_expression

只有在 condition_expression 的求值结果为 true 时,才会发生指定的事件。

-count number

从 0 开始,每次发生事件时,计数器的计数便会增加。达到 number 时,执行便停止,且计数器重置为 0。

-count infinity

从 0 开始,每次发生事件时,计数器的计数便会增加。执行没有停止。

-temp

创建发生事件时会删除的临时断点。

-disable

创建禁用状态的断点。

有关设置机器级断点的信息,另请参见stopi 命令

有关所有事件的列表和语法,请参见设置事件规范