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