Get-PSCallStack

显示当前调用堆栈。

语法

Get-PSCallStack [<CommonParameters>]

说明

Get-PSCallStack cmdlet 显示当前调用堆栈。

虽然它设计用来与 Windows PowerShell 调试程序配合使用,但是您可以使用此 cmdlet 来显示该调试程序之外的脚本或函数中的调用堆栈。

若要在该调试程序中运行 Get-PSCallStack 命令,请键入“k”或“get-pscallstack”。

参数

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

不能通过管道将对象传递给此 cmdlet。

输出

System.Management.Automation.CallStackFrame

Get-PSCallStack 返回一个表示调用堆栈中的项的对象。

示例 1

C:\PS>function my-alias { 
   $p = $args[0]
   get-alias | where {$_.definition -like "*$p"} | ft 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:\ps-test> 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*"} | ft Definition,

[DBG]: PS C:\ps-test>get-pscallstack

Name        CommandLineParameters         UnboundArguments              Location
----        ---------------------         ----------------              --------
prompt      {}                            {}                            prompt
my-alias    {}                            {get-content}                 prompt
prompt      {}                            {}                            prompt


[DBG]: PS C:\ps-test> o
    
Definition  Name
----------  ----
Get-Content gc
Get-Content cat
Get-Content type

说明
-----------
此命令使用 Get-PSCallStack cmdlet 显示 My-Alias(获取 cmdlet 名称的别名的简单函数)的调用堆栈。

第一个命令在 Windows PowerShell 提示符处输入该函数。第二个命令使用 Set-PSBreakpoint cmdlet 在 My-Alias 函数上设置断点。第三个命令使用 My-Alias 函数获取当前会话中 Get-Content cmdlet 的所有别名。

调试程序在该函数调用时开始工作。两个连续 step-into 命令开始一行接一行执行该函数。然后,使用 Get-PSCallStack 命令检索调用堆栈。

最后一个命令是 Step-Out 命令 (o),它退出调试程序并继续执行脚本直到完成。





另请参阅

概念

about_Debuggers
Set-PSBreakpoint
Get-PSBreakpoint
Enable-PSBreakpoint
Disable-PSBreakpoint
Remove-PSBreakpoint