DBG$HELP.HLB  —  DEBUG  SHOW  STACK
    Displays information on the currently active routine calls.

    Format

      SHOW STACK  [integer]

1  –  Parameters

 integer

    Specifies the number of frames to display. If you omit the
    parameter, the debugger displays information about all call
    frames.

2  –  Qualifiers

2.1    /START_LEVEL

       /START_LEVEL=n

    Directs SHOW STACK to begin displaying information at call frame
    level n. For example, to see stack information for only frame 3,
    enter the following command:

    DBG>  SHOW STACK/START=3 1

    To see details for the 4th and 5th stack frames, enter the
    following command:

    DBG>  SHOW STACK/START=4 2

3  –  Description

    For each call frame, the SHOW STACK command displays information
    such as stack pointers, condition handler, saved register values
    (Alpha), local register allocation (Integrity servers). Note that
    an argument passed through a register or an argument list may
    contain the addresses of the actual argument. In such cases, use
    the EXAMINE address-expression command to display the values of
    these arguments.

    On Alpha and Integrity server processors, a routine invocation
    can result in:

    o  A stack frame procedure, with a call frame on the memory
       stack,

    o  A register frame procedure, with a call frame stored in the
       register set (Alpha) or on the register stack (Integrity
       servers), or

    o  A null frame procedure, without a call frame

    The SHOW STACK command provides information on all three
    procedures: stack frame, register frame, and null frame. (See
    the examples below.)

    Related command:

       SHOW CALLS

4  –  Examples

      Alpha example:

        DBG> SHOW STACK
        invocation block 0

            FP: 000000007F907AD0
            Detected what appears to be a NULL frame
            NULL frames operate in the same invocation context as their caller
            NULL Procedure Descriptor (0000000000010050):
                Flags:                  3089
                  KIND:                 PDSC$K_KIND_FP_STACK (09)
                Signature Offset        0000
                Entry Address:          MAIN\FFFF
            Procedure Descriptor (0000000000010000):
                Flags:                  3089
                  KIND:                 PDSC$K_KIND_FP_STACK (09)
                  FP is Base Register
                Rsa Offset:             0008
                Signature Offset        0000
                Entry Address:          MAIN
                Ireg Mask:              20000004 <R2,FP>
                  RA Saved @ 000000007F907AD8:  FFFFFFFF8255A1F8
                  R2 Saved @ 000000007F907AE0:  000000007FFBF880
                  FP Saved @ 000000007F907AE8:  000000007F907B30
                Freg Mask:              00000000
                Size:                   00000020

        invocation block 1

            FP: 000000007F907B30
            Procedure Descriptor (FFFFFFFF8255D910):
                Flags:                  3099
                  KIND:                 PDSC$K_KIND_FP_STACK (09)
                  Handler Valid
                  FP is Base Register
                Rsa Offset:             0048
                Signature Offset        0001
                Entry Address:          -2108317536
                Ireg Mask:              20002084 <R2,R7,R13,FP>
                  RA Saved @ 000000007F907B78:  000000007FA28160
                  R2 Saved @ 000000007F907B80:  0000000000000000
                  R7 Saved @ 000000007F907B88:  000000007FF9C9E0
                  R13 Saved @ 000000007F907B90: 000000007FA00900
                  FP Saved @ 000000007F907B98:  000000007F907BB0
                Freg Mask:              00000000
                Size:                   00000070
                Condition Handler:      -2108303104
        DBG>

      In the above example, note that sections of routine prologues
      and epilogues appear to the debugger to be null frames. The
      portion of the prologue before the change in the frame pointer
      (FP) and the portion of the epilogue after restoration of the
      FP each look like a null frame, and are reported accordingly.

      Integrity servers example-The following abbreviations are used
      in the example:

         GP-Global data segement Pointer (%R1)
         PC-Program Counter (Instruction Pointer + instruction slot
         number)
         SP-Stack Pointer (memory stack)
         BSP-Backing Store Pointer (register stack)
         CFM-Current Frame Marker

        DBG> SHOW STACK
        Invocation block 0      Invocation handle 000007FDC0000270

            GP:         0000000000240000
            PC:         MAIN\FFFF
                        In prologue region
            RETURN PC:  MAIN\%LINE 15
            SP:         000000007AD13B40
            Is memory stack frame:
                previous SP:    000000007AD13B40
            BSP:        000007FDC0000270
            Is register stack frame:
                previous BSP:   000007FDC0000248
            CFM:        0000000000000005
                No locals       Outs R32 : R36

        Invocation block 1      Invocation handle 000007FDC0000248
            GP:         0000000000240000
            PC:         MAIN\%LINE 15
            RETURN PC:  0FFFFFFFF80C2A200
            SP:         000000007AD13B40
            Is memory stack frame:
                previous SP:    000000007AD13B70
            BSP:        000007FDC0000248
            Is register stack frame:
                previous BSP:   000007FDC0000180
            CFM:        000000000000028A
                Ins/Locals R32 : R36    Outs R37 : R41

        Invocation block 2      Invocation handle 000007FDC0000180
            GP:         0FFFFFFFF844DEC00
            PC:         0FFFFFFFF80C2A200
            RETURN PC:  SHARE$DCL_CODE0+5AB9F
            SP:         000000007AD13B70
            Is memory stack frame:
                previous SP:    000000007AD13BC0
            BSP:        000007FDC0000180
            Is register stack frame:
                previous BSP:   000007FDC00000B8
            Has handler:
                function value:         0FFFFFFFF842DFBD0
            CFM:        0000000000000C20
                Ins/Locals R32 : R55    Outs R56 : R63
        DBG>

      See VSI OpenVMS Calling Standard for more information.
Close Help