STACK(1) STACK(1)
NAME
stack - examine call stack
SYNOPSIS
bind '#p' /prog
stack [ -v ] [ -p dispath sblpath ]... pid
DESCRIPTION
Stack writes to the standard output a stack trace for pro-
cess pid, by decoding the stack traceback data contained in
the file /prog/pid/stack. The -v option causes stack to
print values of arguments and variables. The output is most
useful when the Limbo program was compiled with the -g
option to produce a .sbl symbol file.
Stack has a built-in list of associations between dis direc-
tories and their associated source directories (e.g. it can
automatically map from /dis/ls.dis to /appl/cmd/ls.sbl).
Giving the -p option adds a new association to the head of
this list: if a module path prefix matches dispath, stack
will search for a symbol file in sblpath. If the environment
variable $sblpath is set, pairs of items from it are added
to the association list, as given as -p options. The -p
options take precedence over $sblpath.
EXAMPLE
Run stack on process with ID 1:
$ stack 1
unknown fn() Module $Sys PC 742103
waitfor() shnew.b:105.7, 38
runpipeline() shnew.b:483.2, 14
runit() shnew.b:552.3, 29
init() shnew.b:83.3, 28
The process is executing in the Sys module, a call to
sys->read that originated at line 105 (characters 7 to 38)
of the waitfor function in shnew.b.
Once again, with the -v option to reveal more:
$ stack -v 1
unknown fn() Module $Sys PC 742103
waitfor(pid=18) shnew.b:105.7, 38
status=[0] ""
buf=[64] @b419a4
n=-1
who=-1
runpipeline(ctx=nil, pipeline=@b41454) shnew.b:483.2, 14
pid=18
Page 1 Plan 9 (printed 11/7/25)
STACK(1) STACK(1)
runit(ctx=nil, pipes=nil) shnew.b:552.3, 29
pipeline=@b41454
init(ctxt=nil, argv=nil) shnew.b:83.3, 28
buf=[1024] @b40f04
n=4
arg=@b41634
prompt=[21] "$ "
$
FILES
/prog/pid/stack
/prog/pid/status
SOURCE
/appl/cmd/stack.b
SEE ALSO
deb(1), ps(1), prog(3), debug(2)
Page 2 Plan 9 (printed 11/7/25)