Get-PSCallStack
현재 호출 스택을 표시합니다.
구문
Get-PSCallStack [<CommonParameters>]
설명
Get-PSCallStack cmdlet은 현재 호출 스택을 표시합니다.
이 cmdlet은 Windows PowerShell 디버거와 함께 사용하기 위한 것이지만, 디버거 외부의 스크립트 또는 함수에 호출 스택을 표시하는 데 사용할 수도 있습니다.
디버거 내에서 Get-PSCallStack 명령을 실행하려면 "k" 또는 "get-pscallstack"을 입력합니다.
매개 변수
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 개체를 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
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 cmdlet을 사용하여 cmdlet 이름의 별칭을 가져오는 간단한 함수인 My-Alias에 대한 호출 스택을 표시합니다.
첫 번째 명령은 Windows PowerShell 프롬프트에 함수를 입력합니다. 두 번째 명령은 Set-PSBreakpoint cmdlet을 사용하여 My-Alias 함수에 중단점을 설정합니다. 세 번째 명령은 My-Alias 함수를 사용하여 Get-Content cmdlet에 대해 현재 세션의 모든 별칭을 가져옵니다.
디버거는 함수 호출 시 중단됩니다. 연속하는 두 step-into 명령이 함수를 한 줄씩 실행하기 시작합니다. 그런 다음 Get-PSCallStack 명령을 사용하여 호출 스택을 검색합니다.
마지막 명령인 Step-Out 명령은 디버거를 끝내고 스크립트를 완료할 때까지 계속 실행합니다.
참고 항목
개념
about_Debuggers
Set-PSBreakpoint
Get-PSBreakpoint
Enable-PSBreakpoint
Disable-PSBreakpoint
Remove-PSBreakpoint