Get-PSCallStack
Zeigt den aktuellen Aufrufstapel an.
Syntax
Default (Standardwert)
Get-PSCallStack
Beschreibung
Das Cmdlet Get-PSCallStack zeigt den aktuellen Aufrufstapel an.
Obwohl es für die Verwendung mit dem Windows PowerShell-Debugger konzipiert ist, können Sie dieses Cmdlet verwenden, um den Aufrufstapel in einem Skript oder einer Funktion außerhalb des Debuggers anzuzeigen.
Zum Ausführen eines Get-PSCallStack Befehls im Debugger geben Sie k oder Get-PSCallStackein.
Beispiele
Beispiel 1: Abrufen des Aufrufstapels für eine 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
Dieser Befehl verwendet das Cmdlet Get-PSCallStack, um den Aufrufstapel für My-Aliasanzuzeigen, eine einfache Funktion, die die Aliase für einen Cmdlet-Namen abruft.
Der erste Befehl gibt die Funktion an der Windows PowerShell-Eingabeaufforderung ein. Der zweite Befehl verwendet das Cmdlet Set-PSBreakpoint, um einen Haltepunkt für die My-Alias-Funktion festzulegen. Der dritte Befehl verwendet die My-Alias-Funktion, um alle Aliase in der aktuellen Sitzung für das Cmdlet Get-Content abzurufen.
Der Debugger wird beim Funktionsaufruf unterbrochen. Zwei aufeinander folgende step-into (s) Befehle beginnen mit der Ausführung der Funktionszeile nach Zeile. Anschließend wird ein Get-PSCallStack-Befehl verwendet, um den Aufrufstapel abzurufen.
Der letzte Befehl ist ein Step-Out -Befehl (o), der den Debugger beendet und das Skript bis zum Abschluss weiter ausführt.
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
CallStackFrame
Dieses Cmdlet gibt ein Objekt zurück, das die Elemente im Aufrufstapel darstellt.
Hinweise
PowerShell enthält die folgenden Aliase für Get-PSCallStack:
- Alle Plattformen:
gcs