Отображает текущий стек вызова.

Синтаксис

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. Вторая команда использует командлет Set-PSBreakpoint, чтобы установить точку останова на функции My-Alias. Третья команда использует функцию My-Alias, чтобы получить все псевдонимы в текущем сеансе для командлета Get-Content.

Отладчик останавливается на вызове функции. Две последовательных команды step-into начинают построчное выполнение функции. Затем команда Get-PSCallStack получает стек вызова. 

Последняя команда Step-Out выходит из отладчика и продолжает выполнение скрипта до конца.






См. также