Get-PSCallStack
Wyświetla bieżący stos wywołań.
Składnia
Default (Domyślna)
Get-PSCallStack
Opis
Polecenie cmdlet Get-PSCallStack wyświetla aktualny stos wywołań.
Chociaż jest on przeznaczony do używania z debugerem programu Windows PowerShell, można użyć tego polecenia cmdlet do wyświetlania stosu wywołań w skrycie lub funkcji poza debugerem.
Aby uruchomić polecenie Get-PSCallStack w debugerze, wpisz k lub Get-PSCallStack.
Przykłady
Przykład 1: Pobierz stos wywołań dla funkcji
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
To polecenie używa cmdletu Get-PSCallStack, aby wyświetlić stos wywołań dla My-Alias, prostej funkcji, która zwraca aliasy dla nazwy cmdletu.
Pierwsze polecenie wprowadza funkcję w wierszu polecenia programu Windows PowerShell. Drugie polecenie używa polecenia cmdlet Set-PSBreakpoint, aby ustawić punkt przerwania w funkcji My-Alias. Trzecie polecenie używa funkcji My-Alias, aby pobrać wszystkie aliasy w bieżącej sesji dla polecenia cmdlet Get-Content.
Debugger zatrzymuje się przy wywołaniu funkcji. Dwa kolejne polecenia step-into (s) zaczynają wykonywać funkcję w sposób liniowy, wiersz po wierszu. Następnie polecenie Get-PSCallStack służy do pobierania stosu wywołań.
Ostatnim poleceniem jest polecenie Step-Out (o), które zakończa działanie debugera i kontynuuje wykonywanie skryptu aż do jego zakończenia.
Dane wejściowe
None
Nie można przekazywać obiektów do tego cmdletu.
Dane wyjściowe
CallStackFrame
To polecenie cmdlet zwraca obiekt reprezentujący elementy w stosie wywołań.
Uwagi
Program PowerShell zawiera następujące aliasy dla Get-PSCallStack:
- Wszystkie platformy:
gcs