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

     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)