Get-PSCallStack

Visar den aktuella anropsstacken.

Syntax

Get-PSCallStack []

Description

Cmdleten Get-PSCallStack visar den aktuella anropsstacken.

Även om den är utformad för att användas med Windows PowerShell-felsökningsprogrammet kan du använda den här cmdleten för att visa anropsstacken i ett skript eller en funktion utanför felsökningsprogrammet.

Om du vill köra ett Get-PSCallStack kommando i felsökningsprogrammet skriver du k eller Get-PSCallStack.

Exempel

Exempel 1: Hämta anropsstacken för en funktion

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

Det här kommandot använder cmdleten Get-PSCallStack för att visa anropsstacken för My-Alias, en enkel funktion som hämtar aliasen för ett cmdlet-namn.

Det första kommandot anger funktionen i Windows PowerShell-prompten. Det andra kommandot använder cmdleten Set-PSBreakpoint för att ange en brytpunkt för My-Alias funktionen. Det tredje kommandot använder My-Alias funktionen för att hämta alla alias i den aktuella sessionen för cmdleten Get-Content .

Felsökningsprogrammet bryter sig in vid funktionsanropet. Två på varandra följande step-into (s) kommandon börjar köra funktionen rad för rad. Sedan används ett Get-PSCallStack kommando för att hämta anropsstacken.

Det sista kommandot är ett Step-Out kommando (o) som avslutar felsökningsprogrammet och fortsätter att köra skriptet till slutförande.

Indata

None

Du kan inte skicka objekt till den här cmdleten.

Utdata

CallStackFrame

Den här cmdleten returnerar ett objekt som representerar objekten i anropsstacken.

Kommentarer

Windows PowerShell innehåller följande alias för Get-PSCallStack:

  • gcs