Get-PSCallStack
Displays the current call stack.
Syntax
Get-PSCallStack []
Description
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
.
Examples
Example 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 : prompt PS 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 {} {} prompt
PS 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, a 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.
Inputs
None
You can't pipe objects to this cmdlet.
Outputs
This cmdlet returns an object representing the items in the call stack.
Notes
Windows PowerShell includes the following aliases for Get-PSCallStack
:
gcs