Set-PSDebug
스크립트 디버깅 기능을 설정/해제하고 추적 수준을 설정하며 Strict 모드를 전환합니다.
구문
Set-PSDebug [-Off] [<CommonParameters>]
Set-PSDebug [-Step] [-Strict] [-Trace <int>] [<CommonParameters>]
설명
Set-PSDebug cmdlet은 스크립트 디버깅 기능을 설정/해제하고 추적 수준을 설정하며 Strict 모드를 전환합니다.
Trace 매개 변수를 1로 설정하면 스크립트의 각 줄이 실행되면서 추적됩니다. 이 매개 변수를 2로 설정하면 변수 할당, 함수 호출 및 스크립트 호출도 추적됩니다. Step 매개 변수를 지정하면 스크립트의 각 줄이 실행되기 전에 메시지가 표시됩니다.
매개 변수
-Off
모든 스크립트 디버깅 기능을 해제합니다.
참고: "Set-StrictMode -off" 명령은 "set-psdebug -strict" 명령으로 설정된 확인 기능을 사용하지 않도록 설정합니다. 자세한 내용은 Set-StrictMode를 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Step
단계별 스크립트 실행을 설정합니다. 각 줄이 실행되기 전에 실행을 중지할지, 계속할지, 아니면 새 인터프리터 수준을 입력하여 스크립트 상태를 검사할지를 묻는 메시지가 사용자에게 표시됩니다.
참고: Step 매개 변수를 지정하면 Trace 수준이 자동으로 1로 설정됩니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Strict
값이 변수에 할당되기 전에 변수가 참조되는 경우 인터프리터가 예외를 throw하도록 지정합니다.
참고: "Set-StrictMode -off" 명령은 "set-psdebug -strict" 명령으로 설정된 확인 기능을 사용하지 않도록 설정합니다. 자세한 내용은 Set-StrictMode를 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Trace <int>
다음과 같은 추적 수준을 지정합니다.
0 – 스크립트 추적을 해제합니다.
1 – 실행될 때 스크립트 줄을 추적합니다.
2 – 스크립트 줄, 변수 할당, 함수 호출 및 스크립트를 추적합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
없음 이 cmdlet은 어떠한 출력도 반환하지 않습니다. |
예 1
C:\PS>set-psdebug -trace 2; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
1
DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
2
DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
3
설명
-----------
이 명령은 추적 수준을 2로 설정한 다음 숫자 1, 2, 3을 표시하는 스크립트를 실행합니다.
예 2
C:\PS>set-psdebug -step; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -step; foreach ($i in 1..3) {$i}
Continue with this operation?
1+ Set-PsDebug -step; foreach ($i in 1..3) {$i}
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):a
DEBUG: 1+ Set-PsDebug -step; foreach ($i in 1..3) {$i}
1
2
3
설명
-----------
이 명령은 단계별 실행을 설정한 다음
숫자 1, 2 및 3을 표시하는 스크립트를 실행합니다.
예 3
C:\PS>set-psdebug -off; foreach ($i in 1..3) {$i}
1
2
3
설명
-----------
이 명령은 모든 디버깅 기능을 해제한 다음 숫자 1, 2, 3을 표시하는 스크립트를 실행합니다.
예 4
C:\PS>set-psdebug -strict; $NewVar
The variable $NewVar cannot be retrieved because it has not been set yet.
At line:1 char:28
+ Set-PsDebug -strict;$NewVar <<<<
설명
-----------
이 명령은 인터프리터를 Strict 모드에 두고 아직 설정되지 않은 변수에 대한 액세스를 시도합니다.
참고 항목
개념
about_Debuggers
Debug-Process
Set-PSBreakpoint
Set-StrictMode
Write-Debug