admin 管理员组

文章数量: 1184232


2024年3月11日发(作者:faring)

dbx 命令

用途

提供了一个调试和运行程序的环境。

语法

dbx [ -a ProcessID ] [ -c CommandFile ] [ -d NestingDepth ] [ -I Directory ]

[ -E DebugEnvironment ] [ -p oldpath=newpath:...| pathfile ] [ -k ] [ -u ] [ -

F ] [ -r ] [ -x ] [ ObjectFile [ CoreFile ] ]

描述

dbx 命令为 C、C++、Pascal 和 FORTRAN 语言程序提供了一个符号性的调试程序,允许

您按照下面的内容执行操作:

检验对象和核心文件。

为程序运行提供一个控制环境。

在选中的语句处设置断点或单步执行程序。

使用符号变量进行调试并将它们以正确的格式显示出来。

ObjectFile 参数是一个由编译器产生的目标(可执行)文件。在编译您的程序时,使用 -g(生

成符号表)标志产生 dbx 命令需要的信息。

注:cc 命令的 -g 标志应该在对象文件进行编译时使用。如果没有使用 -g 标志或者如果符号引

用被 strip 命令从 xcoff 文件中删除了,则 dbx 命令的符号性能将受到限制。

如果没有指定 -c 标志,dbx 命令将会在用户的 $HOME 目录中检查 .dbxinit 文件。然后它在

用户当前目录中检查 .dbxinit 文件。如果在当前目录中存在一个 .dbxinit文件,该文件将覆盖

用户的 $HOME 目录中的 .dbxinit 文件。如果在发现了 .dbxinit 文件存在于用户的 $HOM

E 目录中或者当前目录中,该文件的子命令将在调试部分开始时运行。使用编辑器创建一个 .d

bxinit 文件。

如果没有指定 ObjectFile,那么 dbx 将询问要进行检查的目标文件的名称。缺省值是 。

如果当前目录中存在 core 文件或者指定了 CoreFile 参数,那么 dbx 将报告程序发生错误的

位置。保留在核心映像中的变量、寄存器和内存可以被检查直到开始执行 ObjectFile。那时 d

bx 调试程序提示输入命令。

表达式句柄

dbx 程序可以显示各种各样的表达式。您可以在 dbx 调试程序中使用 C 和 Pascal 语法的公共

子集和一些 FORTRAN 扩展的子集来指定表达式。

以下运算符在调试程序中是有效的:

*(星号)或者 ^ (脱字符号) 表示正在取消引用间接寻址或者指针。

[ ](方括号)或者( )(圆括号) 表示数组表达式的下标。

. (句点) 通过指针和结构来使用该字段引用运算符。这将使得 C 运算符 ->(箭头)变得没

有必要,尽管它仍允许使用。

&(与符号) 获得变量的地址。

.. (两个句点) 在指定数组子部分时将上下界分开。例如:n[1..4]。

以下类型的运算在调试程序的表达式中是有效的:

代数运算 =、-、*、/(浮点运算的除法)、div(整数运算的除法)、mod 和 exp(乘幂运算)。

按位运算 -, I, bitand, xor, ~, << 和 >>

逻辑运算 or、and、not、II 和 &&

比较运算 <、>、<=、>=、< > 或 !=、= 或 ==

其它 (类型名),sizeof

逻辑和比较表达式在 stop 和 trace 中作为条件使用的。

检验表达式类型。您可以通过重命名或者重载运算符的方式重设一个表达式类型。三种重命名的

格式分别是:类型名(表达式),表达式 |类型名以及 (类型名)表达式。以下是一个示例,

其中 x 变量是一个值为 97 的整数:

(dbx) print x

97

(dbx) print char (x), x char, (char) x, x

'a' 'a' 'a' 97命令行编辑

dbx 命令提供一种命令行编辑功能类似于由 Korn Shell 提供的功能。vi 模式提供 类似 vi 的

编辑功能,而 emacs 模式赋予您类似于 emacs 的控制功能。

这些功能可以通过使用 dbx 子命令 set -o 或者 set edit 来开启。要打开 vi 风格的命令行编

辑,您可以输入子命令 set edit vi 或者 set -o vi。

您也可以使用 EDITOR 环境变量来设置编辑模式。


本文标签: 文件 使用 表达式 命令