Set-PSBreakpoint
줄, 명령 또는 변수에 중단점을 설정합니다.
구문
Set-PSBreakpoint
[-Action <ScriptBlock>]
[[-Column] <Int32>]
[-Line] <Int32[]>
[-Script] <String[]>
[-Runspace <Runspace>]
[<CommonParameters>]
Set-PSBreakpoint
[-Action <ScriptBlock>]
-Command <String[]>
[[-Script] <String[]>]
[-Runspace <Runspace>]
[<CommonParameters>]
Set-PSBreakpoint
[-Action <ScriptBlock>]
[[-Script] <String[]>]
-Variable <String[]>
[-Mode <VariableAccessMode>]
[-Runspace <Runspace>]
[<CommonParameters>]
Description
cmdlet은 Set-PSBreakpoint
스크립트 또는 현재 세션의 명령 실행에서 중단점을 설정합니다. 스크립트를 실행하거나 명령을 실행하기 전에 또는 디버깅 중에 다른 중단점에서 중지된 경우 중단점을 설정하는 데 사용할 Set-PSBreakpoint
수 있습니다.
Set-PSBreakpoint
는 원격 컴퓨터에서 중단점을 설정할 수 없습니다. 원격 컴퓨터에서 스크립트를 디버그하려면 스크립트를 로컬 컴퓨터로 복사한 다음 로컬로 디버그하세요.
각 Set-PSBreakpoint
명령은 다음 세 가지 유형의 중단점 중 하나를 만듭니다.
- 줄 중단점 - 특정 선 및 열 좌표에서 중단점을 설정합니다.
- 명령 중단점 - 명령 및 함수에 중단점을 설정합니다.
- 변수 중단점 - 변수에 중단점을 설정합니다.
단일 Set-PSBreakpoint
명령에서 여러 줄, 명령 또는 변수에 중단점을 설정할 수 있지만 각 Set-PSBreakpoint
명령은 중단점의 한 유형만 설정합니다.
중단점에서 PowerShell은 일시적으로 실행을 중지하고 디버거를 제어합니다. 명령 프롬프트가 변경 DBG\>
되고 디버거 명령 집합을 사용할 수 있게 됩니다. 그러나 Action 매개 변수를 사용하여 중단점에 대한 조건이나 로깅 또는 진단과 같은 추가 작업을 수행하는 지침과 같은 대체 응답을 지정할 수 있습니다.
이 Set-PSBreakpoint
cmdlet은 PowerShell 스크립트 디버깅을 위해 설계된 여러 cmdlet 중 하나입니다.
PowerShell 디버거에 대한 자세한 내용은 about_Debuggers 참조하세요.
예제
예제 1: 줄에 중단점 설정
다음은 Sample.ps1 스크립트의 줄 5에 중단점을 설정하는 예제입니다. 스크립트가 실행되면 5줄이 실행되기 직전에 실행이 중지됩니다.
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
줄 번호 Set-PSBreakpoint
별로 새 중단점을 설정하면 cmdlet은 중단점 ID 및 적중 횟수를 포함하는 줄 중단점 개체(System.Management.Automation.LineBreakpoint)를 생성합니다.
예제 2: 함수에 중단점 설정
이 예제에서는 Sample.ps1 cmdlet의 Increment
함수에 명령 중단점을 만듭니다. 매번 지정된 함수를 호출하기 직전에 스크립트의 실행이 중지됩니다.
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
결과는 명령 중단점 개체입니다. 스크립트를 실행하기 전에 HitCount 속성의 값은 0입니다.
예제 3: 변수에 중단점 설정
다음은 Sample.ps1 스크립트의 서버 변수에 중단점을 설정하는 예제입니다. 값이 ReadWrite인 Mode 매개 변수를 사용하여 변수 값을 읽고 값이 변경되기 직전에 실행을 중지합니다.
Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite
예제 4: 지정된 텍스트로 시작하는 모든 명령에 중단점 설정
다음은 "write"로 시작하는 Sample.ps1 스크립트의 모든 명령에 중단점을 설정하는 예제입니다 Write-Host
.
Set-PSBreakpoint -Script Sample.ps1 -Command "write*"
예제 5: 변수 값에 따라 중단점 설정
다음은 변수 값이 DiskTest
2보다 큰 경우에만 스크립트의 함수 Test.ps1
에서 실행을 중지하는 $Disk
예제입니다.
Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }
Action 값은 함수의 변수 값을 $Disk
테스트하는 스크립트 블록입니다.
이 작업은 조건이 충족되는 경우 키워드를 사용하여 break
실행을 중지합니다. 대안(및 기본값)은 Continue입니다.
예제 6: 함수에 중단점 설정
다음은 함수에 중단점을 설정하는 예제입니다 CheckLog
. 명령은 스크립트를 지정하지 않으므로 중단점은 현재 세션에서 실행되는 모든 항목에 대해 설정됩니다. 디버거는 함수가 선언될 때가 아니라 호출될 때 중단됩니다.
PS> Set-PSBreakpoint -Command "checklog"
Id : 0
Command : checklog
Enabled : True
HitCount : 0
Action :
function CheckLog {
>> get-eventlog -log Application |
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG: Function breakpoint on 'prompt:Checklog'
예제 7: 여러 줄에 중단점 설정
다음은 Sample.ps1 스크립트에서 세 줄 중단점을 설정하는 예제입니다. 스크립트에 지정된 각 줄의 열 2에 하나의 중단점을 설정합니다. Action 매개 변수에 지정된 작업은 모든 중단점에 적용됩니다.
PS C:\> 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
예제 8: Runspace에서 중단점 설정
이 예제에서는 작업이 시작됩니다. Runspace는 변수에 저장되고 Runspace 매개 변수를 Set-PSBreakPoint
사용하여 명령에 전달됩니다.
Start-Job -ScriptBlock {
Start-Sleep -Seconds 10
}
$runspace = Get-Runspace -Id 1
Set-PSBreakpoint -Command Start-Sleep -Runspace $runspace
매개 변수
-Action
각 중단점에서 중단되지 않는 대신 실행되는 명령을 지정합니다. 명령이 포함된 스크립트 블록을 입력합니다. 이 매개 변수를 사용하여 조건부 중단점을 설정하거나 테스트 또는 로깅과 같은 다른 작업을 수행할 수 있습니다.
이 매개 변수를 생략하거나 작업을 지정하지 않으면 중단점에서 실행이 중지되고 디버거가 시작됩니다.
Action 매개 변수를 사용하면 작업 스크립트 블록이 각 중단점에서 실행됩니다. 스크립트 블록에 Break 키워드가 포함되어 있지 않으면 실행이 중지되지 않습니다. 스크립트 블록에서 Continue 키워드를 사용하는 경우 다음 중단점까지 실행이 다시 시작됩니다.
자세한 내용은 about_Script_Blocks, about_Break 및 about_Continue 참조하세요.
형식: | ScriptBlock |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Column
실행이 중지되는 스크립트 파일의 열 번호를 지정합니다. 열 번호를 하나만 입력합니다. 기본값은 열 1입니다.
열 값은 중단점을 지정하기 위해 Line 매개 변수 값과 함께 사용됩니다. Line 매개 변수가 여러 줄을 지정하는 경우 Column 매개 변수는 지정된 각 줄의 지정된 열에 중단점을 설정합니다. PowerShell은 지정된 줄 및 열 위치에 있는 문자를 포함하는 문 또는 식 앞에 실행을 중지합니다.
열은 열 번호 1(0이 아님)부터 왼쪽 위 여백에서 계산됩니다. 스크립트에 없는 열을 지정하면 오류가 선언되지 않지만 중단점은 실행되지 않습니다.
형식: | Int32 |
Position: | 2 |
Default value: | 1 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Command
명령 중단점을 설정합니다. cmdlet 이름(예: Get-Process
함수 이름)을 입력합니다. 와일드카드가 허용됩니다.
각 명령의 각 인스턴스가 실행되기 직전에 실행이 중지됩니다. 명령이 함수인 경우 함수가 호출될 때마다, 그리고 각 BEGIN, PROCESS 및 END 섹션에서 실행이 중지됩니다.
형식: | String[] |
별칭: | C |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Line
스크립트에서 줄 중단점을 설정합니다. 하나 이상의 줄 번호를 쉼표로 구분하여 입력합니다. PowerShell은 지정된 각 줄에서 시작되는 문을 실행하기 직전에 중지됩니다.
줄은 줄 번호 1(0이 아님)으로 시작하는 스크립트 파일의 왼쪽 위 여백에서 계산됩니다. 빈 줄을 지정하면 빈 줄이 아닌 다음 줄 앞에서 실행이 중지됩니다. 줄이 범위를 벗어나면 중단점이 적중되지 않습니다.
형식: | Int32[] |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Mode
변수 중단점을 트리거하는 액세스 모드를 지정합니다. 기본값은 Write입니다.
이 매개 변수는 변수 매개 변수가 명령에 사용되는 경우에만 유효합니다. 이 모드는 명령에 설정된 모든 중단점에 적용됩니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
- 쓰기 - 새 값이 변수에 기록되기 직전에 실행을 중지합니다.
- 읽기 - 변수가 읽혀질 때, 즉 값에 액세스할 때 할당, 표시 또는 사용 시 실행을 중지합니다. 읽기 모드에서는 변수 값이 변경될 때 실행이 중지되지 않습니다.
- ReadWrite - 변수를 읽거나 쓸 때 실행을 중지합니다.
형식: | VariableAccessMode |
허용되는 값: | Read, Write, ReadWrite |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Runspace
지정된 Runspace에서 중단점과 상호 작용할 수 있도록 Runspace 개체의 ID를 지정합니다.
이 매개 변수는 PowerShell 7.2에 추가되었습니다.
형식: | Runspace |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Script
이 cmdlet이 중단점을 설정하는 스크립트 파일의 배열을 지정합니다. 스크립트 파일 중 하나 이상의 경로 및 파일 이름을 입력합니다. 파일이 현재 디렉터리에 있는 경우 경로를 생략할 수 있습니다. 와일드카드가 허용됩니다.
기본적으로 변수 중단점 및 명령 중단점은 현재 세션에서 실행되는 모든 명령에 설정됩니다. 이 매개 변수는 줄 중단점을 설정하는 경우에만 필요합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Variable
이 cmdlet이 중단점을 설정하는 변수 배열을 지정합니다. 달러 기호($
)가 없는 쉼표로 구분된 변수 목록을 입력합니다.
Mode 매개 변수를 사용하여 중단점을 트리거하는 액세스 모드를 결정합니다. 기본 모드인 Write는 새 값이 변수에 기록되기 직전에 실행을 중지합니다.
형식: | String[] |
별칭: | V |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
개체를 이 cmdlet으로 파이프할 수 없습니다.
출력
Set-PSBreakpoint
는 설정한 각 중단점을 나타내는 개체를 반환합니다.
참고
PowerShell에는 다음 별칭이 포함됩니다.Set-PSBreakpoint
모든 플랫폼:
sbp
Set-PSBreakpoint
는 원격 컴퓨터에서 중단점을 설정할 수 없습니다. 원격 컴퓨터에서 스크립트를 디버그하려면 스크립트를 로컬 컴퓨터로 복사한 다음 로컬로 디버그하세요.둘 이상의 줄, 명령 또는 변수
Set-PSBreakpoint
에 중단점을 설정하면 각 항목에 대한 중단점 개체가 생성됩니다.명령 프롬프트에서 함수 또는 변수에 중단점을 설정하는 경우 함수 또는 변수를 만들기 전이나 만든 후에 중단점을 설정할 수 있습니다.
관련 링크
PowerShell