줄, 명령 또는 변수에 중단점을 설정합니다.
구문
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 매개 변수에 지정된 작업은 모든 중단점에 적용됩니다.
참고 항목