다음을 통해 공유


Set-PSBreakpoint

줄, 명령 또는 변수에 중단점을 설정합니다.

구문

Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {<Read> | <Write> | <ReadWrite>}] [-Action <scriptblock>] [<CommonParameters>]

설명

Set-PSBreakpoint cmdlet은 현재 세션에서 실행되는 임의의 명령 또는 스크립트에 중단점을 설정합니다. Set-PSBreakpoint를 사용하여 스크립트 또는 명령 실행 전에 중단점을 설정하거나 디버깅 중 다른 중단점에서 중지되어 있을 때 중단점을 설정할 수 있습니다.

참고: Set-PSBreakpoint는 원격 컴퓨터에 중단점을 설정할 수 없습니다. 원격 컴퓨터에서 스크립트를 디버깅하려면 스크립트를 로컬 컴퓨터로 복사한 다음 로컬에서 디버깅하십시오.

각 Set-PSBreakpoint 다음 세가지 유형 중 하나의 중단점을 만듭니다.

-- 줄 중단점: 특정 줄과 열 좌표에 중단점을 설정합니다.

-- 명령 중단점: 명령 및 함수에 중단점을 설정합니다.

-- 변수 중단점: 변수에 중단점을 설정합니다.

하나의 Set-PSBreakpoint 명령에서 여러 줄, 명령 또는 변수에 중단점을 설정할 수는 있지만 각 Set-PSBreakpoint 명령은 한 가지 유형의 중단점만 설정할 수 있습니다.

중단점에서 Windows PowerShell은 일시적으로 실행을 중지하고 디버거에 제어권을 넘겨줍니다. 명령 프롬프트는 "DBG>"로 변경되고 디버거 명령 집합을 사용할 수 있게 됩니다. 하지만 Action 매개 변수를 사용하여 중단점 조건 또는 로깅이나 진단과 같은 추가 작업을 실행하라는 지시 등 대체 응답을 지정할 수도 있습니다.

Set-PSBreakpoint cmdlet은 Windows PowerShell 스크립트를 디버깅하는 데 사용되는 여러 cmdlet 중 하나입니다. Windows PowerShell 디버거에 대한 자세한 내용은 about_Debuggers를 참조하십시오.

매개 변수

-Action <scriptblock>

각 중단점에서 중단하는 대신 실행되는 명령을 지정합니다. 명령을 포함하는 스크립트 블록을 입력합니다. 이 매개 변수를 사용하여 조건부 중단점을 설정하거나 테스트 또는 로깅 같은 다른 작업을 수행할 수 있습니다.

이 매개 변수를 생략하거나 작업을 지정하지 않으면 중단점에서 실행이 중지되고 디버거가 시작됩니다.

Action 매개 변수를 사용하면 각 중단점에서 Action 스크립트 블록이 실행됩니다. 스크립트 블록에 Break 키워드가 포함되어 있지 않은 한 실행은 중지되지 않습니다. 스크립트 블록에서 Continue 키워드를 사용하는 경우 다음 중단점까지 실행이 다시 시작됩니다.

자세한 내용은 about_Script_Blocks, about_Break 및 about_Continue를 참조하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Column <int>

스크립트 파일에서 실행이 중지되는 열의 열 번호를 지정합니다. 열 번호를 하나만 입력하십시오. 기본값은 열 1입니다.

Column 값은 Line 매개 변수 값과 함께 중단점을 지정하는 데 사용됩니다. Line 매개 변수가 여러 줄을 지정하면 Column 매개 변수는 지정된 각 줄의 지정된 열에 중단점을 설정합니다. Windows PowerShell은 지정된 줄 및 열 위치에 있는 문자가 포함된 문 또는 식 앞에서 실행을 중지합니다.

열은 왼쪽 위 여백에서부터 열 번호 1(0 아님)로 계산됩니다. 스크립트에 없는 열을 지정하는 경우 오류가 선언되지는 않지만 중단점도 실행되지 않습니다.

필수 여부

false

위치

3

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Command <string[]>

명령 중단점을 설정합니다. "Get-Process"와 같은 명령 이름 또는 함수 이름을 입력하십시오. 와일드카드를 사용할 수 있습니다.

각 명령의 각 인스턴스가 실행되기 직전에 실행이 중지됩니다. 명령이 함수인 경우 함수가 호출될 때마다, 그리고 각 BEGIN, PROCESS 및 END 섹션에서 실행이 중지됩니다.

필수 여부

true

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

true

-Line <Int32[]>

스크립트에 줄 중단점을 설정합니다. 하나 이상의 줄 번호를 쉼표로 구분하여 입력합니다. Windows PowerShell은 지정된 각 줄에서 시작하는 문을 실행하기 직전에 중지됩니다.

줄은 스크립트 파일의 왼쪽 위 여백에서부터 줄 번호 1(0 아님)로 계산됩니다. 빈 줄을 지정하면 빈 줄이 아닌 다음 줄 앞에서 실행이 중지됩니다. 줄이 범위를 벗어나는 경우 중단점이 실행되지 않습니다.

필수 여부

true

위치

2

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Mode <VariableAccessMode>

변수 중단점을 트리거하는 액세스 모드를 결정합니다. 기본값은 Write입니다.

이 매개 변수는 명령에 Variable 변수가 사용된 경우에만 유효합니다. 모드는 명령에 설정된 모든 중단점에 적용됩니다.

유효한 값은 다음과 같습니다.

-- Write: 변수에 새 값을 쓰기 직전에 실행을 중지합니다.

-- Read: 변수를 읽을 때, 즉 변수 값을 할당, 표시 또는 사용하기 위해 액세스할 때 실행을 중지합니다. 읽기 모드에서는 변수 값이 변경될 때 실행이 중지되지 않습니다.

-- ReadWrite: 변수를 읽거나 쓸 때 실행을 중지합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Script <string[]>

지정된 각 스크립트 파일에서 중단점을 설정합니다. 하나 이상의 스크립트 파일의 경로 및 파일 이름을 입력합니다. 파일이 현재 디렉터리에 있는 경우 경로를 생략할 수 있습니다. 와일드카드를 사용할 수 있습니다.

기본적으로 변수 중단점과 명령 중단점은 현재 세션에서 실행되는 모든 명령에 설정할 수 있습니다. 이 매개 변수는 줄 중단점을 설정하는 경우에만 필요합니다.

필수 여부

false

위치

1

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

true

-Variable <string[]>

변수 중단점을 설정합니다. 달러 기호($)를 제외하고 쉼표로 구분된 변수 목록을 입력하십시오.

중단점을 트리거하는 액세스 모드를 결정하려면 Mode 매개 변수를 사용합니다. 기본 모드인 Write의 경우 변수에 새 값을 쓰기 직전에 실행이 중지됩니다.

필수 여부

true

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

없음

입력을 Set-PSBreakpoint로 파이프할 수 없습니다.

출력

중단점 개체(System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)

Set-PSBreakpoint는 설정한 각 중단점을 나타내는 개체를 반환합니다.

참고

Set-PSBreakpoint는 원격 컴퓨터에 중단점을 설정할 수 없습니다. 원격 컴퓨터에서 스크립트를 디버깅하려면 스크립트를 로컬 컴퓨터로 복사한 다음 로컬에서 디버깅하십시오.

여러 줄, 명령 또는 변수에 중단점을 설정하는 경우 Set-PSBreakpoint는 각 항목에 대해 중단점 개체를 생성합니다.

명령 프롬프트에서 함수 또는 변수에 중단점을 설정하는 경우 함수 또는 변수를 만들기 전이나 만든 후에 중단점을 설정할 수 있습니다.

예 1

C:\PS>set-psbreakpoint -script sample.ps1 -line 5

Column     : 0
Line       : 5
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

설명
-----------
이 명령은 Sample.ps1 스크립트의 줄 5에 중단점을 설정합니다. 따라서 스크립트가 실행되면 줄 5가 실행되기 직전에 실행이 중지됩니다.

줄 번호로 새 중단점을 설정하는 경우 Set-PSBreakpoint cmdlet은 다음 샘플 출력에서와 같이 중단점 ID와 적중 횟수가 포함된 줄 중단점 개체(System.Management.Automation.LineBreakpoint)를 생성합니다.





예 2

C:\PS>set-psbreakpoint -command Increment -script sample.ps1

Command    : Increment
Action     :
Enabled    : True
HitCount   : 0
Id         : 1
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

설명
-----------
이 명령은 Sample.ps1 cmdlet의 Increment 함수에 명령 중단점을 만듭니다. 매번 지정된 함수를 호출하기 직전에 스크립트의 실행이 중지됩니다.

만들어지는 개체는 명령 중단점 개체입니다. 스크립트가 실행되기 전 HitCount 속성의 값은 0입니다.





예 3

C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite

설명
-----------
이 명령은 Sample.ps1 스크립트의 Server 변수에 중단점을 설정합니다. 이 명령은 ReadWrite 값과 함께 Mode 매개 변수를 사용하여 변수 값을 읽거나 값을 변경하기 직전 실행을 중지합니다.





예 4

C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*"

설명
-----------
이 명령은 Sample.ps1 스크립트에서 "write"로 시작하는 모든 명령(예: "write-host")에 중단점을 설정합니다.





예 5

C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest `
  -action { (if $disk -gt 2) { break } }

설명
-----------
이 명령은 $disk 변수 값이 2보다 큰 경우에만 Test.ps1 스크립트의 DiskTest 함수에서 실행을 중지합니다.

이 명령은 Set-PSBreakpoint cmdlet을 사용하여 DiskTest 함수에 명령 중단점을 설정합니다. 작업의 값은 함수에서 $disk 변수의 값을 테스트하는 스크립트 블록입니다.

이 작업에서는 BREAK 키워드를 사용하여 조건이 충족된 경우 실행을 중지합니다. 기본값이기도 한 다른 값은 CONTINUE입니다.





예 6

C:\PS>set-psbreakpoint -command checkpoint-computer

Id       : 0
Command  : checkpoint-computer
Enabled  : True
HitCount : 0
Action   :

C:\PS> function CheckLog {
>> get-eventlog -log Application | 
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
C:\PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG:  Function breakpoint on 'prompt:Checklog'
C:\PS>>>

설명
-----------
이 명령은 CheckLog 함수에 중단점을 설정합니다. 명령이 스크립트를 지정하지 않으므로 중단점은 현재 세션에서 실행되는 모든 항목에 설정됩니다. 디버거는 함수가 선언될 때가 아니라 호출될 때 중단됩니다.





예 7

C:\PS>set-psbreakpoint -script sample.ps1 -line 1, 14, 19 -column 2 -action {&(log.ps1)}

Column     : 2
Line       : 1
Action     :
Enabled    : True
HitCount   : 0
Id         : 6
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 14
Action     :
Enabled    : True
HitCount   : 0
Id         : 7
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 19
Action     :
Enabled    : True
HitCount   : 0
Id         : 8
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

설명
-----------
이 명령은 Sample.ps1 스크립트에 3개의 줄 중단점을 설정합니다. 스크립트에서 지정된 각 줄의 열 2에 중단점이 하나씩 설정됩니다. Action 매개 변수에 지정된 작업은 모든 중단점에 적용됩니다.





참고 항목

개념

about_Debuggers
Get-PSBreakpoint
Enable-PSBreakpoint
Disable-PSBreakpoint
Remove-PSBreakpoint
Get-PSCallStack