dbx命令详解-zlw
dbx 命令
用途
提供了一个调试和运行程序的环境。
语法
dbx [ -a ProcessID ] [ -c CommandFile ] [ -d NestingDepth ] [ -I
Directory ] [ -E DebugEnvironment ] [ -p oldpath newpath:...| pathfi
le ] [ -k ] [ -u ] [ -F ] [ -r ] [ -x ] [ ObjectFile [ Core
File ] ]
描述
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。
按照缺省值,
原创力文档

文档评论(0)