顯示目前的呼叫堆疊。
語法
Get-PSCallStack [<CommonParameters>]
描述
Get-PSCallStack Cmdlet 會顯示目前的呼叫堆疊。
儘管此 Cmdlet 是設計用於 Windows PowerShell 偵錯工具,您還是可以用它來在偵錯工具以外顯示指令碼或函數中的呼叫堆疊。
若要在偵錯工具中執行 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 取得目前工作階段中的所有別名。 在呼叫該函數時,偵錯工具會進入命令列。兩個連續的逐步執行命令會開始逐行執行該函數。然後,Get-PSCallStack 會被用來擷取呼叫堆疊。 最後一個命令是 Step-Out 命令 (o),它會結束偵錯工具並繼續執行完指令碼。
請參閱