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 文件存在于用户的 $HOME 目录中或者当前目录中,该文件的子命令将在调试部分开始时运行。使用编辑器创建一个 .dbxinit 文件。
如果没有指定 ObjectFile,那么 dbx 将询问要进行检查的目标文件的名称。缺省值是 a.out。如果当前目录中存在 core 文件或者指定了 CoreFile 参数,那么 dbx 将报告程序发生错误的位置。保留在核心映像中的变量、寄存器和内存可以被检查直到开始执行 ObjectFile。那时 dbx 调试程序提示输入命令。
表达式句柄
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 环境变量来设置编辑模式。
dbx 命令将保存输入到历史文件 .dbxhistory 当中的命令。如果没有设置 DBXHISTFILE 环境变量,使用的历史文件是 $HOME/.dbxhistory。
按照缺省值,dbx 将保存最近输入的 128 个命令。DBXHISTSIZE 环境变量可以从来增加这一限制。
阅读(1046) | 评论(0) | 转发(0) |