다음을 통해 공유


수동으로 1394 케이블을 통해 커널 모드 디버깅 설정

Important

1394 전송은 Windows 10 버전 1607 이하에서 사용할 수 있습니다. 이후 버전의 Windows에서는 사용할 수 없습니다. 이더넷을 사용하여 KDNET과 같은 다른 전송으로 프로젝트를 전환해야 합니다. 해당 전송에 대한 자세한 내용은 KDNET 네트워크 커널 디버깅 자동 설정을 참조 하세요.

Windows용 디버깅 도구는 1394(Firewire) 케이블을 통해 커널 디버깅을 지원합니다. 이 항목에서는 수동으로 1394 디버깅을 설정하는 방법을 설명합니다.

디버거를 실행하는 컴퓨터를 호스트 컴퓨터라고 하며 디버깅 중인 컴퓨터를 대상 컴퓨터라고 합니다. 호스트 및 대상 컴퓨터에는 각각 1394 어댑터가 있어야 하며 Windows XP 이상을 실행해야 합니다. 호스트 및 대상 컴퓨터는 동일한 버전의 Windows를 실행할 필요가 없습니다.

대상 컴퓨터 설정

  1. 호스트 및 대상 컴퓨터에서 디버깅을 위해 선택한 1394 컨트롤러에 1394 케이블을 연결합니다.

Important

BCDEdit를 사용하여 부팅 정보를 변경하기 전에 테스트 PC에서 BitLocker 및 보안 부팅과 같은 Windows 보안 기능을 일시적으로 일시 중단해야 할 수 있습니다. 테스트가 완료되면 이러한 보안 기능을 다시 사용하도록 설정하고 보안 기능이 비활성화된 경우 테스트 PC를 적절하게 관리합니다.

  1. 관리자 권한 명령 프롬프트 창에서 다음 명령을 입력합니다. 여기서 n 은 0에서 62까지 선택한 채널 번호입니다.

    bcdedit /debug on

    bcdedit /dbgsettings 1394 channel:n

  2. 디버깅에 사용하려는 1394 컨트롤러의 버스, 디바이스 및 함수 번호를 지정해야 합니다. 자세한 내용은 1394 디버깅에 대한 문제 해결 팁을 참조 하세요.

  3. 대상 컴퓨터를 아직 다시 부팅하지 마세요.

처음으로 디버깅 세션 시작

  1. 호스트 컴퓨터에서 실행되는 Windows의 비트(32비트 또는 64비트)를 결정합니다.

  2. 호스트 컴퓨터에서 호스트 컴퓨터에서 실행되는 Windows의 비트와 일치하는 WinDbg(관리자 권한) 버전을 엽니다. 예를 들어 호스트 컴퓨터가 64비트 버전의 Windows를 실행하는 경우 관리자 권한으로 WinDbg의 64비트 버전을 엽니다.

  3. 파일 메뉴에서 커널 디버그를 선택합니다. 커널 디버깅 대화 상자에서 1394 탭을 엽니다. 채널 번호를 입력하고 확인을 클릭합니다.

    이 시점에서 1394 디버그 드라이버는 호스트 컴퓨터에 설치됩니다. 따라서 WinDbg의 비트와 Windows 비트의 비트를 일치해야 합니다. 1394 디버그 드라이버가 설치되면 후속 디버깅 세션에 32비트 또는 64비트 버전의 WinDbg를 사용할 수 있습니다.

  4. 대상 컴퓨터를 다시 부팅합니다.

디버깅 세션 시작

WinDbg 사용

  • 호스트 컴퓨터에서 WinDbg를 엽니다. 파일 메뉴에서 커널 디버그를 선택합니다. 커널 디버깅 대화 상자에서 1394 탭을 엽니다. 채널 번호를 입력하고 확인을 클릭합니다.

    명령 프롬프트 창에서 다음 명령을 입력하여 WinDbg로 세션을 시작할 수도 있습니다. 여기서 n 은 채널 번호입니다.

    windbg /k 1394:channel=n

KD 사용

  • 호스트 컴퓨터에서 명령 프롬프트 창을 열고 다음 명령을 입력합니다. 여기서 n 은 채널 번호입니다.

    kd /k 1394:channel=n

환경 변수 사용

호스트 컴퓨터에서 환경 변수를 사용하여 1394 채널을 지정할 수 있습니다. 그런 다음 디버깅 세션을 시작할 때마다 채널을 지정할 필요가 없습니다. 환경 변수를 사용하여 1394 채널을 지정하려면 명령 프롬프트 창을 열고 다음 명령을 입력합니다. 여기서 n 은 채널 번호입니다.

  • set _NT_DEBUG_BUS=1394
  • set _NT_DEBUG_1394_CHANNEL=n

디버깅 세션을 시작하려면 명령 프롬프트 창을 열고 다음 명령 중 하나를 입력합니다.

  • kd
  • windbg

추가 정보

bcdedit 명령 및 boot.ini 파일에 대한 전체 설명서는 WDK(Windows 드라이버 키트) 설명서에서 드라이버 테스트 및 디버깅을 위한 부팅 옵션을 참조하세요.

1394 케이블을 통해 디버깅하기 위한 문제 해결 팁

대부분의 1394 디버깅 문제는 호스트 또는 대상 컴퓨터에서 여러 1394 컨트롤러를 사용하여 발생합니다. 호스트 컴퓨터에서 여러 1394 컨트롤러를 사용하는 것은 지원되지 않습니다. 호스트에서 실행되는 1394 디버그 드라이버는 레지스트리에 열거된 첫 번째 1394 컨트롤러와만 통신할 수 있습니다. 마더보드에 내장된 1394 컨트롤러와 별도의 1394 카드가 있는 경우 카드를 제거하거나 컴퓨터의 BIOS 설정에서 기본 제공 컨트롤러를 사용하지 않도록 설정합니다.

대상 컴퓨터에는 여러 개의 1394 컨트롤러가 있을 수 있지만 권장되지는 않습니다. 대상 컴퓨터에 마더보드에 1394 컨트롤러가 있는 경우 가능한 경우 디버깅에 해당 컨트롤러를 사용합니다. 추가 1394 카드가 있는 경우 카드를 제거하고 온보드 컨트롤러를 사용해야 합니다. 또 다른 해결 방법은 컴퓨터의 BIOS 설정에서 온보드 1394 컨트롤러를 사용하지 않도록 설정하는 것입니다.

대상 컴퓨터에서 여러 1394 컨트롤러를 사용하도록 설정하려는 경우 디버거가 디버깅을 위해 클레임할 컨트롤러를 알 수 있도록 버스 매개 변수를 지정해야 합니다. 버스 매개 변수를 지정하려면 대상 컴퓨터에서 장치 관리자 열고 디버깅에 사용할 1394 컨트롤러를 찾습니다. 컨트롤러의 속성 페이지를 열고 버스 번호, 장치 번호 및 함수 번호를 기록해 둡니다. 관리자 권한 명령 프롬프트 창에서 다음 명령을 입력합니다. 여기서 b, df 는 10진수 형식의 버스, 디바이스 및 함수 번호입니다.

bcdedit -set "{dbgsettings}" busparams b.d.f.

대상 컴퓨터를 다시 부팅합니다.

참고 항목

수동으로 커널 모드 디버깅 설정

자동으로 KDNET 네트워크 커널 디버깅 설정