Get-PSCallStack
Visualizza lo stack di chiamate corrente.
Sintassi
Default (Impostazione predefinita)
Get-PSCallStack
Descrizione
Il cmdlet Get-PSCallStack visualizza lo stack di chiamate corrente.
Sebbene sia progettato per essere utilizzato con Windows PowerShelldebugger, è possibile utilizzare questo cmdlet per visualizzare lo stack di chiamate in uno script o in una funzione all'esterno del debugger.
Per eseguire un comando Get-PSCallStack nel debugger, digitare k o Get-PSCallStack.
Esempio
Esempio 1: Ottieni lo stack di chiamate per una funzione
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
Questo comando usa il cmdlet Get-PSCallStack per visualizzare lo stack di chiamate per My-Alias, una semplice funzione che ottiene gli alias per il nome di un cmdlet.
Il primo comando immette la funzione al prompt di Windows PowerShell. Il secondo comando usa il cmdlet Set-PSBreakpoint per impostare un punto di interruzione nella funzione My-Alias. Il terzo comando usa la funzione My-Alias per ottenere tutti gli alias nella sessione corrente per il cmdlet Get-Content.
Il debugger si interrompe in corrispondenza della chiamata di funzione. Due comandi step-in consecutivi iniziano a eseguire la funzione riga per riga. Quindi, viene usato il comando a33 Get-PSCallStack per recuperare lo stack di chiamate.
Il comando finale è un comando Step-Out (o) che esce dal debugger e continua l'esecuzione dello script fino al completamento.
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
CallStackFrame
Get-PSCallStack restituisce un oggetto che rappresenta gli elementi nello stack di chiamate.