许多用户刚接触 zOS USS DBX 时,很不习惯它的 command,与 linux gdb 差别比较大,因此觉得不好上手。本文着重介绍用 alias 命令把 dbx command 改成自己习惯用的名字,然后把这些 alias 命令写在一个 dbx 可读到默认脚本 .dbxinit 或 .dbxsetup 直接去操作dbx。
当我们刚接触 zOS USS DBX时,可能会对它的一系列 command感到陌生,与 linux gdb command差别比较大,因此觉得不好上手。其实 dbx 提供一个非常有用命令 alias,用户可以先用 alias 命令把 dbx command 改成自己惯用的名字,然后把这些 alias 命令写在一个 dbx 可以读到的默认脚本 .dbxinit 或 .dbxsetup里,这样就可以用自己熟悉的命令去操控dbx了。好了,我们来看一下具体的实例。
例如, "stop in functionName" 和 "stop at "filename":#line" 是 dbx 设置断点的两种方式,可以看到它不同于 gdb 中的"breakpoint XX",尤其是设置行号断点的方式,要熟记这些dbx 命令,改变我们的用法习惯是一件很头疼的事情。这里,我们用 alias 和 脚本的方式把 dbx command 改换成 gdb 中我们熟悉的命令。
1. 在alias 设置之前,如果我们要在main.c中的第12行设置一个断点,我们看到的情况是这样的:
(dbx64) st at "main.c":12 # 敲入stop at 命令,在第12行设置断点
[2] stop at "main.c":12
2. 现在我们利用 alias,将dbx中的命令换成我们熟悉的
(1) 把 alias 命令写在 .dbxinit内,例如,我们要把stop at 命令替换成命令“b”
alias b "stop at"
(2) alias 写好之后,启动 dbx,当我们再次想在main.c中的第12行设置断点时,情况就不同喽:
(dbx64) b 12 # 只需敲入 b 12,即可在第12行设置断点
[1] stop at "main.c":12
(3) 另外,在调试程序的过程中,我们可以通过 alias 来查看我们替换了哪些命令
(dbx64) alias
j status
l list
c cont
n next
m map
e edit
d delete
p print
r run
q quit
h help
t where
s step
x registers
mu mutex
cv condition
th thread
st stop
b stop at # 这是我刚刚设置的呦
rwl readwritelock
通过以上的实例,我们可以看到一些难记,陌生的命令已经被我改头换面成了简单、好记的模样,感兴趣的话,赶快动手试一下吧。
本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/other/