Using Predefined Variables
Certain read-only ksh predefined variables are provided. The following variables are always valid:
|
|
$ins |
Disassembly of the current instruction. |
$lineno |
Current
line number in decimal. |
$vlineno |
Current “visiting” line number in decimal. |
$line |
Contents of the current
line. |
$func |
Name of the current function. |
$vfunc |
Name of the current “visiting” function. |
$class |
Name of the
class to which $func belongs. |
$vclass |
Name of the class to which $vfunc belongs. |
$file |
Name
of the current file. |
$vfile |
Name of the current file being visited. |
$loadobj |
Name of the
current loadable object. |
$vloadobj |
Name of the current loadable object being visited. |
$scope |
Scope of the
current PC in back-quote notation. |
$vscope |
Scope of the visited PC in back-quote notation. |
$funcaddr |
Address
of $func in hex. |
$caller |
Name of the function calling $func. |
$dllist |
After a dlopen or
dlclose event, contains the list of load objects just loaded or unloaded. The
first word of dllist is a “+” or a “-” depending on whether a
dlopen or a dlclose has occurred. |
$newhandlerid |
ID of the most recently created handler. This
variable has an undefined value after any command that deletes handlers. Use the
variable immediately after creating a handler. dbx cannot capture all of the handler IDs
for a command that creates multiple handlers. |
$firedhandlers |
List of handler ids that caused
the most recent stoppage. The handlers on the list are marked with “*”
in the output of the status command. |
$proc |
Process ID of the current process
being debugged. |
$lwp |
Lwp ID of the current LWP. |
$thread |
Thread ID of the current thread. |
$newlwp |
lwp
ID of a newly created LWP. |
$newthread |
Thread ID of a newly created thread. |
$prog |
Full
path name of the program being debugged. |
$oprog |
Previous value of $prog, which is
used to get back to what you were debugging following an exec(), when
$prog reverts to “-”. While $prog is expanded to a full path name,
$oprog contains the program path as specified on the command line or to
the debug command. If exec() is called more than once, there is no
way to return to the original program. |
$exec32 |
True if the dbx binary is 32–bit. |
$exitcode |
Exit
status from the last run of the program. The value is an
empty string if the process has not exited. |
$booting |
Set to true if the event
occurs during the “boot” process. Whenever a new program is debugged, it is
first booted so that the list and location of shared libraries can be
ascertained. The process is then killed. This sequence is termed booting. While booting is
occurring, all events are still available. Use this variable to distinguish, for example,
the sync and syncrtld events occurring during a debugging run and the
ones occurring during a normal run. |
|
As an example, consider that whereami can be implemented as:
function whereami {
echo Stopped in $func at line $lineno in file $(basename $file)
echo "$lineno\t$line"
}
Variables Valid for when Command
The following variables are valid only within the body of a when command.
$handlerid
During the execution of the body, $handlerid is the id of the when
command to which the body belongs. These commands are equivalent:
when X -temp { do_stuff; }
when X { do_stuff; delete $handlerid; }
Variables Valid for when Command and Specific Events
Certain variables are valid only within the body of a when command and
for specific events as shown in the following tables.
Table B-1 Variables Valid for sig Event
|
|
$sig |
Signal number
that caused the event |
$sigstr |
Name of $sig |
$sigcode |
Subcode of $sig if applicable |
$sigcodestr |
Name of $sigcode |
$sigsender |
Process
ID of sender of the signal, if appropriate |
|
Table B-2 Variable Valid for exit Event
|
|
$exitcode |
Value of the
argument passed to _exit(2) or exit(3) or the return value of main |
|
Table B-3 Variable Valid for dlopen and dlclose Events
|
|
$dlobj |
Pathname
of the load object dlopened or dlclosed |
|
Table B-4 Variables Valid for sysin and sysout Events
|
|
$syscode |
System call number |
$sysname |
System call name |
|
Table B-5 Variable Valid for proc_gone Events
|
|
$reason |
One of
signal, exit, kill, or detach |
|
Table B-6 Variables Valid for thr_create Event
|
|
$newthread |
Id of the newly created thread (for example,
t@5) |
$newlwp |
Id of the newly created LWP (for example, l@4) |
|
Table B-7 Variables Valid for watch Event
|
|
$watchaddr |
The address being written
to, read from, or executed |
$watchmode |
One of the following: r for read, w
for write, x for execute; followed by one of the following: a for
after, b for before |
|