Get-PSCallStack
현재 호출 스택을 표시합니다.
구문
Get-PSCallStack []
Description
Get-PSCallStack
cmdlet은 현재 호출 스택을 표시합니다.
Windows PowerShell 디버거와 함께 사용하도록 설계되었지만 이 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에 대한 현재 세션의 모든 별칭을 가져옵니다.
디버거는 함수 호출 시 중단됩니다. 두 개의 연속 step-into
(s
) 명령이 함수 줄을 한 줄씩 실행하기 시작합니다. 그런 다음 Get-PSCallStack
명령을 사용하여 호출 스택을 검색합니다.
마지막 명령은 디버거를 종료하고 스크립트를 계속 실행하여 완료하는 Step-Out
명령(o
)입니다.
입력
None
개체를 이 cmdlet으로 파이프할 수 없습니다.
출력
이 cmdlet은 호출 스택의 항목을 나타내는 개체를 반환합니다.
참고
Windows PowerShell에는 Get-PSCallStack
다음과 같은 별칭이 포함되어 있습니다.
gcs
관련 링크
PowerShell