Get-PSCallStack

Displays the current call stack.
Get-PSCallStack [<CommonParameters>]

The Get-PSCallStack cmdlet displays the current call stack.

Although it is designed to be used with the Windows PowerShell debugger, you can use this cmdlet to display the call stack in a script or function outside of the debugger.

To run a Get-PSCallStack command while in the debugger, type k or get-pscallstack.

Parameters
<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer, PipelineVariable, and OutVariable.

Inputs

None

You cannot pipe objects to this cmdlet.

Outputs

System.Management.Automation.CallStackFrame

Get-PSCallStack returns an object that represents the items in the call stack.

Examples
  1. Get the call stack for a function:
    PS C:> function my-Alias {
    $p = $args[0]
    Get-Alias | where {$_.definition -like "*$p"} | format-table definition, name -auto
    }
    PS C:ps-test>  Set-PSBreakpoint -Command My-Alias
    Command    : my-alias
    Action     : Enabled    : True
    HitCount   : 0
    Id         : 0
    Script     : promptPS C:> my-alias Get-Content
    
       Entering debug mode. Use h or ? for help.
       Hit Command breakpoint on 'prompt:my-alias'
       my-alias get-content
       [DBG]: PS C:ps-test> s
       $p = $args[0]
       DEBUG: Stepped to ':    $p = $args[0]    '
       [DBG]: PS C:ps-test> s
       get-alias | Where {$_.Definition -like "*$p*"} | format-table Definition,
       [DBG]: PS C:ps-test>get-pscallstack
       Name        CommandLineParameters         UnboundArguments              Location
       ----        ---------------------         ----------------              --------
       prompt      {}                            {}                            prompt
       my-alias    {}                            {get-content}                 prompt
       prompt      {}                            {}                            promptPS C:>[DBG]: PS C:ps-test> o
       Definition  Name
       ----------  ----
       Get-Content gc
       Get-Content cat
       Get-Content type

    This command uses the Get-PSCallStack cmdlet to display the call stack for My-Alias, a simple function that gets the aliases for a cmdlet name.

    The first command enters the function at the Windows PowerShell prompt. The second command uses the Set-PSBreakpoint cmdlet to set a breakpoint on the My-Alias function. The third command uses the My-Alias function to get all of the aliases in the current session for the Get-Content cmdlet.

    The debugger breaks in at the function call. Two consecutive step-into (s) commands begin executing the function line by line. Then, a33 Get-PSCallStack command is used to retrieve the call stack.

    The final command is a Step-Out command (o) that exits the debugger and continues executing the script to completion.

Related Links

Disable-PSBreakpoint
Enable-PSBreakpoint
Format-Table
Get-PSBreakpoint
Remove-PSBreakpoint
Set-PSBreakpoint
Where-Object