다음을 통해 공유


Get-PSCallStack

현재 호출 스택을 표시합니다.

구문

Get-PSCallStack []

Description

Get-PSCallStack cmdlet은 현재 호출 스택을 표시합니다.

Windows PowerShelldebugger와 함께 사용하도록 설계되었지만 이 cmdlet을 사용하여 디버거 외부의 스크립트 또는 함수에 호출 스택을 표시할 수 있습니다.

디버거에서 Get-PSCallStack 명령을 실행하려면 k 또는 Get-PSCallStack입력합니다.

예제

예제 1: 함수에 대한 호출 스택 가져오기

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

이 명령은 Get-PSCallStack cmdlet을 사용하여 cmdlet 이름의 별칭을 가져오는 간단한 함수인 My-Alias에 대한 호출 스택을 표시합니다.

첫 번째 명령은 Windows PowerShell 프롬프트에서 함수를 입력합니다. 두 번째 명령은 Set-PSBreakpoint cmdlet을 사용하여 My-Alias 함수에 중단점을 설정합니다. 세 번째 명령은 My-Alias 함수를 사용하여 Get-Content cmdlet에 대한 현재 세션의 모든 별칭을 가져옵니다.

디버거는 함수 호출 시 중단됩니다. 두 개의 연속적인 단계별 명령이 함수 줄을 따라 실행하기 시작합니다. 그런 다음 a33 Get-PSCallStack 명령을 사용하여 호출 스택을 검색합니다.

마지막 명령은 디버거를 종료하고 스크립트를 계속 실행하여 완료하는 Step-Out 명령(o)입니다.

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

CallStackFrame

Get-PSCallStack 호출 스택의 항목을 나타내는 개체를 반환합니다.