变量 |
定义 |
---|---|
$ins |
反汇编当前指令。 |
$lineno |
以十进制数表示的当前行号。 |
$vlineno |
以十进制数表示的当前“访问”行号。 |
$line |
当前行的内容。 |
$func |
当前函数名。 |
$vfunc |
当前“访问”函数的名称。 |
$class |
$func 所属类的名称。 |
$vclass |
$vfunc 所属类的名称。 |
$file |
当前文件名。 |
$vfile |
被访问的当前文件的名称。 |
$loadobj |
当前可装入对象的名称。 |
$vloadobj |
被访问的当前可装入对象的名称。 |
$scope |
当前 PC 在反引用符号中的作用域。 |
$vscope |
被访问 PC 在反引用符号中的作用域。 |
$funcaddr |
以十六进制数表示的 $func 地址。 |
$caller |
调用 $func 的函数的名称。 |
$dllist |
在发生 dlopen 或 dlclose 事件后,包含刚装入或卸载的装入对象的列表。dllist 的第一个字符根据发生的是 dlopen 还是 dlclose 为 "+" 或 "-"。 |
$newhandlerid |
最近创建的处理程序的 ID。在任何删除处理程序的命令后,此变量有一个未定义的值。创建处理程序后立即使用该变量。dbx 不能针对创建多个处理程序的命令捕获所有处理程序 ID。 |
$firedhandlers |
导致最近中断的处理程序 ID 列表。在 status 命令的输出中,该列表中的处理程序都标记有 "*"。 |
$proc |
正被调试的当前进程的“进程 ID”。 |
$lwp |
当前 LWP 的 Lwp ID。 |
$thread |
当前线程的“线程 ID”。 |
$newlwp |
新建的 LWP 的 lwp ID。 |
$newthread |
新建线程的线程 ID。 |
$prog |
正被调试程序的完整路径名。 |
$oprog |
$prog 恢复为 "-" 时的上一个 $prog 值,用于在执行 exec() 后返回到以前调试的内容。$prog 扩展为完整路径名时,$oprog 包含命令行中指定的程序路径或指定给 debug 命令的程序路径。如果调用 exec() 多次,则无法返回到原始程序。 |
$exec32 |
如果 dbx 二进制数为 32 位,则为 True。 |
$exitcode |
最后运行程序的退出状态。如果进程尚未退出,则该值为空字符串。 |
$booting |
如果在“引导”过程中发生事件,则会设置为 true。每当调试新程序时,它会先引导以便可以确定共享库的列表和位置。然后,进程将被中止。这一序列被称为引导。 引导过程中,所有事件仍然可用。例如,使用此变量来区分在调试运行期间发生的 sync 和 syncrtld 事件以及在正常运行期间发生的这些事件。 |
例如,可以这样实现 whereami:
function whereami { echo Stopped in $func at line $lineno in file $(basename $file) echo "$lineno\t$line" } |
在执行主体过程中,$handlerid 是主体所属 when 命令的 ID。下列命令是等价的:
when X -temp { do_stuff; } when X { do_stuff; delete $handlerid; } |
某些变量仅在 when 命令主体中以及对于下表中所示的特定事件有效。
表 B–1 对 sig 事件有效的变量
变量 |
说明 |
---|---|
$sig |
触发事件的信号数 |
$sigstr |
$sig 的名称 |
$sigcode |
$sig 的子代码(如果适用) |
$sigcodestr |
$sigcode 的名称 |
$sigsender |
信号发出方的进程 ID(如果适用) |
表 B–2 对 exit 事件有效的变量
变量 |
说明 |
---|---|
$exitcode |
传递给 _exit(2) 或 exit(3) 的参数的值或 main 的返回值 |
表 B–3 对 dlopen 和 dlclose 事件有效的变量
变量 |
说明 |
---|---|
$dlobj |
装入对象 dlopened 或 dlclosed 的路径名 |
表 B–4 对 sysin 和 sysout 事件有效的变量
变量 |
说明 |
---|---|
$syscode |
系统调用号 |
$sysname |
系统调用名 |
表 B–5 对 proc_gone 事件有效的变量
变量 |
说明 |
---|---|
$reason |
signal、exit、kill 或 detach 之一 |
表 B–6 对 thr_create 事件有效的变量
变量 |
说明 |
---|---|
$newthread |
新建线程的 ID(例如 t@5) |
$newlwp |
新建 LWP 的 ID(例如 l@4) |
表 B–7 对 watch 事件有效的变量
变量 |
说明 |
---|---|
$watchaddr |
正在写入、读取或执行的地址 |
$watchmode |
以下项之一:r 代表读取,w 代表写入,x 代表执行;后跟以下项之一:a 代表之后,b 代表之前 |