次の方法で共有


Get-PSCallStack

現在の呼び出し履歴を表示します。

構文

Get-PSCallStack []

説明

Get-PSCallStack コマンドレットは、現在の呼び出し履歴を表示します。

このコマンドレットは Windows PowerShell デバッガーで使用するよう設計されていますが、デバッガー外部のスクリプトまたは関数で呼び出し履歴を表示するために使用できます。

デバッガーで Get-PSCallStack コマンドを実行するには、「 k または Get-PSCallStack」と入力します。

例 1: 関数の呼び出し履歴を取得する

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

このコマンドでは、 Get-PSCallStack コマンドレットを使用して、コマンドレット名のエイリアスを取得する単純な関数である My-Aliasの呼び出し履歴を表示します。

最初のコマンドは、Windows PowerShell プロンプトで関数を入力します。 2 番目のコマンドでは、 Set-PSBreakpoint コマンドレットを使用して、 My-Alias 関数にブレークポイントを設定します。 3 番目のコマンドでは、 My-Alias 関数を使用して、 Get-Content コマンドレットの現在のセッションのすべてのエイリアスを取得します。

デバッガーは関数呼び出しに割り込みます。 2 つの連続する step-into (s) コマンドによって、1 行ずつ関数の実行が開始されます。 次に、 Get-PSCallStack コマンドを使用して呼び出し履歴を取得します。

最後のコマンドは、デバッガーを終了し、スクリプトの実行を続行して完了する Step-Out コマンド (o) です。

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

CallStackFrame

このコマンドレットは、呼び出し履歴内の項目を表すオブジェクトを返します。

メモ

PowerShell には、 Get-PSCallStackの次のエイリアスが含まれています。

  • すべてのプラットフォーム:
    • gcs