로컬 컴퓨터에서 실행 중인 하나 이상의 프로세스를 디버깅합니다.

구문

Debug-Process [-Name] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Debug-Process [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Debug-Process cmdlet은 로컬 컴퓨터에서 실행 중인 하나 이상의 프로세스에 디버거를 연결합니다. 프로세스 이름 또는 프로세스 ID(PID)로 프로세스를 지정하거나 프로세스 개체를 Debug-Process로 파이프할 수 있습니다.

Debug-Process는 프로세스에 대해 현재 등록되어 있는 디버거를 연결합니다. 이 cmdlet을 사용하기 전에 디버거를 다운로드하여 올바르게 구성했는지 확인하십시오.

매개 변수

-Id <Int32[]>

디버깅할 프로세스의 프로세스 ID를 지정합니다. 매개 변수 이름("-Id")은 선택 사항입니다.

프로세스의 프로세스 ID를 찾으려면 "Get-Process"를 입력합니다.

필수 여부

true

위치

1

기본값

없음

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-InputObject <Process[]>

디버깅할 프로세스를 나타내는 프로세스 개체를 지정합니다. 프로세스 개체가 포함된 변수를 입력하거나 프로세스 개체를 가져오는 명령(예: Get-Process 명령)을 입력합니다. 또한 프로세스 개체를 Debug-Process로 파이프할 수 있습니다.

필수 여부

true

위치

named

기본값

파이프라인 입력 적용 여부

true (ByValue)

와일드카드 문자 적용 여부

false

-Name <string[]>

디버깅할 프로세스의 이름을 지정합니다. 이름이 같은 프로세스가 두 개 이상 있는 경우 Debug-Process는 해당 이름의 모든 프로세스에 디버거를 연결합니다. 매개 변수 이름("Name")은 선택 사항입니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

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

입력 및 출력

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

입력

System.Int32, System.Diagnostics.Process, System.String

프로세스 ID(Int32), 프로세스 개체(System.Diagnostics.Process) 또는 프로세스 이름(String)을 Debug-Process로 파이프할 수 있습니다.

출력

없음

이 cmdlet은 어떠한 출력도 생성하지 않습니다.

참고

이 cmdlet은 WMI(Windows Management Instrumentation) Win32_Process 클래스의 AttachDebugger 메서드를 사용합니다. 이 메서드에 대한 자세한 내용은 MSDN(Microsoft Developer Network) 라이브러리(https://go.microsoft.com/fwlink/?LinkId=143640)의 "AttachDebugger 메서드"를 참조하십시오.

예 1

C:\PS>debug-process -name powershell

설명
-----------
이 명령은 컴퓨터의 PowerShell 프로세스에 디버거를 연결합니다.






예 2

C:\PS>debug-process -name sql*

설명
-----------
이 명령은 이름이 "sql"로 시작하는 모든 프로세스에 디버거를 연결합니다.






예 3

C:\PS>debug-process winlogon, explorer, outlook

설명
-----------
이 명령은 Winlogon, Explorer 및 Outlook 프로세스에 디버거를 연결합니다.






예 4

C:\PS>debug-process -id 1132, 2028

설명
-----------
이 명령은 프로세스 ID가 1132 및 2028인 프로세스에 디버거를 연결합니다.






예 5

C:\PS>get-process powershell | debug-process

설명
-----------
이 명령은 컴퓨터의 PowerShell 프로세스에 디버거를 연결합니다. Get-Process cmdlet을 사용하여 컴퓨터의 PowerShell 프로세스를 가져온 다음 파이프라인 연산자(|)를 사용하여 Debug-Process cmdlet으로 보냅니다.

특정 PowerShell 프로세스를 지정하려면 Get-Process의 ID 매개 변수를 사용합니다.






예 6

C:\PS>$pid | debug-process

설명
-----------
이 명령은 컴퓨터의 현재 PowerShell 프로세스에 디버거를 연결합니다. 

현재 PowerShell 프로세스의 프로세스 ID가 포함된 $pid 자동 변수를 사용합니다. 그런 다음 파이프라인 연산자(|)를 사용하여 프로세스 ID를 Debug-Process cmdlet으로 보냅니다.

$pid 자동 변수에 대한 자세한 내용을 보려면 about_Automatic_Variables를 참조하십시오.






예 7

C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-process

설명
-----------
이 명령은 Server01 및 Server02 컴퓨터의 MyApp 프로세스에 디버거를 연결합니다.

Get-Process cmdlet을 사용하여 Server01 및 Server02 컴퓨터의 MyApp 프로세스를 가져온 다음 파이프라인 연산자를 사용하여 프로세스를 Debug-Process cmdlet으로 보냅니다. 그러면 이 cmdlet이 디버거를 연결합니다.






예 8

C:\PS>$p = get-process powershell

C:\PS> debug-process -inputobject $p

설명
-----------
이 명령은 로컬 컴퓨터의 PowerShell 프로세스에 디버거를 연결합니다. 

첫 번째 명령은 Get-Process cmdlet을 사용하여 컴퓨터의 PowerShell 프로세스를 가져옵니다. 그런 다음 결과 프로세스 개체를 $P 변수에 저장합니다.

두 번째 명령은 Debug-Process의 InputObject 매개 변수를 사용하여 $p 변수의 프로세스 개체를 Debug-Process로 전송합니다.






참고 항목




목차