Debug-WcosDevice를 사용하여 디버깅 사용

Debug-WcosDevice는 팩터리 OS 디바이스에서 BCD를 수정하여 디버거를 설정할 수 있도록 하는 WSK에 포함된 PowerShell 유틸리티입니다.

Debug-WcosDevice를 실행하여 다음과 같은 방식으로 액세스할 수 있는 팩터리 OS 디바이스를 구성할 수 있습니다.

  • 관리자 PC에 탑재된 VHD
  • TShell을 통해(팩터리 OS만 해당)

PowerShell에서 유틸리티 로드

Debug-WcosDevice 유틸리티를 실행하려면 먼저 관리자 PC에서 사용할 수 있도록 설정해야 합니다. 필요할 때마다 PowerShell로 가져오거나 PowerShell이 시작될 때 자동으로 로드할 수 있습니다.

옵션 1: 단일 PowerShell 세션에서 사용할 Debug-WcosDevice 로드

Set-Location 'D:\Program Files\Windows Kits\10\Tools\Scripts\'
Import-Module .\Debug-WcosDevice.psm1

여기서 D:\는 WSK의 위치입니다.

옵션 2: 기본적으로 Debug-WcosDevice 로드

다음 파일을 PowerShell 모듈 폴더에 복사하여 PowerShell이 시작될 때마다 Debug-WcosDevice 유틸리티를 로드하도록 관리자 PC에서 PowerShell을 구성할 수 있습니다.

md "C:\Program Files\WindowsPowerShell\Modules\debug-WcosDevice"
cd /D "C:\Program Files\WindowsPowerShell\Modules\debug-WcosDevice"
copy D:\Program Files\Windows Kits\10\Tools\Scripts\Debug-WcosDevice\*ps?1
md "C:\Program Files (x86)\WindowsPowerShell\Modules\debug-WcosDevice"
cd /D "C:\Program Files (x86)\WindowsPowerShell\Modules\debug-WcosDevice"
copy D:\\Program Files\Windows Kits\10\Tools\Scripts\Debug-WcosDevice\*ps?1

여기서 D:\는 Windows 시스템 키트 미디어 또는 설치의 루트입니다.

BCD 파일에 액세스

Debug-WcosDevice를 실행하고 디버깅을 구성하려면 팩터리 OS 이미지의 BCD 파일에 액세스할 수 있어야 합니다. 이렇게 하려면 다음을 수행합니다.

팩터리 OS 이미지의 BCD 파일에 액세스할 수 있으면 Debug-WcosDevice 작업을 시작할 수 있습니다.

디버깅을 사용하도록 설정하도록 BCD 파일 구성

관리 PowerShell 프롬프트에서 Debug-WcosDevice를 사용하여 팩터리 OS 디바이스의 BCD를 수정하여 디버깅을 사용합니다. 디버깅이 사용하도록 설정된 후 디버깅 프로세스는 다른 Windows 디바이스와 동일합니다.

Debug-WcosDevice 사용

디버거에 대한 연결을 설정하려면 Debug-WcosDevice를 실행하고 디버거 및 관련 매개 변수에 대한 전송(네트워크, USB 또는 직렬)을 지정합니다.

Debug-WcosDevice에 대한 전체 구문은 아래에 있습니다.

예:

  • 네트워크 디버거 설정

    Debug-WcosDevice NET 10.23.78.12 All
    
  • 이미 연결된 TShell 연결을 사용하여 네트워크 디버거 구성

    Debug-WcosDevice NET 10.23.78.12 All -TShell
    
  • 직렬 연결을 통해 로컬로 호스팅되는 가상 머신에서 디버거 구성

    Debug-WcosDevice -Transport  SERIAL  1   115200  -BootDebug
    

Debug-WcosDevice를 사용하여 WCOS 디바이스의 BCD를 수정했으면 디버깅을 시작할 준비가 된 것입니다.

Debug-WcosDevice 구문 및 매개 변수

구문

Debug-WcosDevice -Transport <NET <IpAddress> [<Bus Params>] [<HIP>] [<Port>]|USB [<Targetname>] [<Bus params>]|SERIAL <DEBUGPORT> [<BAUDRATE>|NOBAUD]|OFF|ON> <BCD Entry Target> [-TShell]

- 전송 매개 변수

전송 스위치는 수행할 디버그 함수의 유형을 스크립트에 알려주는 데 사용됩니다. 디버그 전송을 구성하여 부팅 옵션에 대한 디버거를 사용하고 켜고 끕니다. 다음 매개 변수를 사용하여 개별 전송에 대한 전송 설정을 변경할 수 있습니다.

debug-WcosDevice-Transport NET, -Transport USB 또는 -Transport SERIAL과 함께 사용하여 팩터리 OS 디바이스에 대한 연결을 구성합니다.

- 전송 NET

NET 전송 옵션과 함께 Debug-WcosDevice.cmd를 실행하면 네트워크 연결을 통해 팩터리 OS 디바이스에 연결할 수 있습니다.

구문

Debug-WcosDevice -Transport NET <IpAddress> [<Bus Params>] [<HIP>] [<Port>] [<Key>] <BCD Entry Target> [-TShell]

예제:

Debug-WcosDevice -Transport NET 10.23.78.12 All

이렇게 하면 HostIP에 대해 IP 주소 10.23.78.12를 사용하여 네트워크 디버거가 설정되고 모든 부팅 항목에서 디버거가 사용하도록 설정됩니다. EEM을 통한 KDNET의 경우 호스트 주소에 관계없이 HostIP=169.254.255.255를 사용합니다.

매개 변수 설명
IpAddress 네트워크에서 사용할 HostIp 주소입니다. IP4 주소 1.1.1.1의 형식으로

기본값은 169.254.255.255의 EEM(이더넷 에뮬레이션 모델)/IpOverUSB 주소를 사용하는 것입니다.

버스 매개 변수 전송 유형 NET을 사용할 때 사용할 특정 버스, 디바이스 및 함수 번호(BDN)를 지정할 수 있습니다. 이 값은 1 또는 1.1.1 형식의 10진수여야 합니다.
HIP 이것이 전달되면 스크립트는 호스트에서 사용할 첫 번째 IP4 IP 주소를 자동으로 찾습니다.

HIP를 사용하는 경우 IpAddress를 입력하지 마세요. 오류가 발생합니다.

포트 이는 호스트의 열린 포트를 나타내며 49152 ~ 65535 범위에 있어야 합니다.

기본값은 50000입니다.

Key 연결을 보호하는 데 사용되는 보안 키입니다.

이 스크립트는 노드당 최대 4자까지 모든 문자가 포함된 키만 허용하며 4개의 노드가 필요합니다. ^[a-zA-Z]{1,4}\.[a-zA-Z]{1,4}\.[a-zA-Z]{1,4}\.[a-zA-Z]{1,4}$

예제:
a.b.c.d
aabb.ccdd.eeff.gghh

기본값은 1.2.3.4입니다(예: 숫자, 기본값으로 사용 가능).

BCD 진입 대상 이는 디버거를 사용하도록 설정하기 위한 부팅 항목을 식별합니다. 전체, MainOS 또는 UpdateOS 중에서 선택합니다. 기본값은 MainOS입니다.
- 전송 USB

구문

USB 전송 옵션과 함께 Debug-WcosDevice.cmd를 실행하면 USB 연결을 통해 WCOS 디바이스에 연결할 수 있습니다.

Debug-WcosDevice -Transport USB [<Targetname>] [<Bus params>] <BCD Entry Target> [-TShell]
매개 변수 설명
버스 매개 변수 전송 유형 NET을 사용할 때 사용할 특정 버스, 디바이스 및 함수 번호(BDN)를 지정할 수 있습니다. 이 값은 1 또는 1.1.1 형식의 10진수여야 합니다.
TargetName Targetname은 최대 24자일 수 있습니다.

기본값은 WCOSTARGET입니다.

BCD 진입 대상 이는 디버거를 사용하도록 설정하기 위한 부팅 항목을 식별합니다. 전체, MainOS 또는 UpdateOS 중에서 선택합니다. 기본값은 MainOS입니다.
- 전송 SERIAL

SERIAL 전송 옵션과 함께 Debug-WcosDevice.cmd를 실행하면 USB 연결을 통해 팩터리 OS 디바이스에 연결할 수 있습니다.

구문

Debug-WcosDevice -Transport SERIAL <DEBUGPORT> [<BAUDRATE>|NOBAUD] <BCD Entry Target> [-TShell]

예제:

Debug-WcosDevice -Transport  SERIAL  1   115200  -BootDebug

자세한 내용은 직렬 연결을 통한 디버그를 참조하세요.

매개 변수 설명
DEBUGPORT 디버그 포트는 1에서 99 사이일 수 있습니다.
BAUDRATE 전송 속도는 300 이상일 수 있습니다.
NOBAUD 이는 시스템이 BAUD 속도를 설정하지 않도록 지정합니다.
BCD 진입 대상 이는 디버거를 사용하도록 설정하기 위한 부팅 항목을 식별합니다. 전체, MainOS 또는 UpdateOS 중에서 선택합니다. 기본값은 MainOS입니다.
- 전송 OFF 또는 ON

예제:

Debug-WcosDevice -Transport OFF
매개 변수 Description
없음 ON 또는 OFF의 전송 값에 따라 디버거를 켜거나 끕니다.

비전송 매개 변수

참고

이러한 매개 변수 앞에 -가 있어야 합니다.

매개 변수 설명
-TShell 이는 TShell에서 실행 중인 스크립트와 TShell 연결을 통해 연결된 디바이스에 대해 디버그 구성을 수행해야 함을 지정합니다.
-BootDebug 이는 스크립트가 {bootmgr} 부팅 옵션을 포함하여 bootdebugger도 변경하도록 지정합니다.
-UserPaths 이는 bcd 저장소에 대한 부분 경로입니다. 스크립트는 경로에 efi\Microsoft\boot\bcd 또는 boot\bcd를 추가하고 파일이 있는지 확인합니다.

형식은 H:\ 또는 H:\temp\something\start\입니다.