次の方法で共有


Get-PSCallStack

現在のコール スタックを表示します。

構文

Get-PSCallStack [<CommonParameters>]

説明

Get-PSCallStack コマンドレットは、現在のコール スタックを表示します。

Windows PowerShell デバッガーと共に使用するように設計されていますが、このコマンドレットを使用すると、デバッガー以外のスクリプトまたは関数のコール スタックを表示できます。

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

パラメーター

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

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

出力

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 コマンドレットを使用して、My-Alias のコール スタックを表示します。これは、コマンドレット名のエイリアスを取得する単純な関数です。

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

デバッガーは、関数呼び出し時に割り込みます。2 つの連続する Step-Into コマンドは、1 行ずつ関数の実行を開始します。次に、コール スタックを取得するために Get-PSCallStack コマンドが使用されます。

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





関連項目

概念

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