다음을 통해 공유


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