다음을 통해 공유


WinDbg를 사용한 원격 디버깅

원격 디버깅에는 두 개의 서로 다른 위치에서 실행되는 두 개의 디버거가 포함됩니다. 디버깅을 수행하는 디버거를 디버깅 서버라고 합니다. 디버깅 클라이언트라고 하는 두 번째 디버거는 원격 위치에서 디버깅 세션을 제어합니다. 원격 세션을 설정하려면 먼저 디버깅 서버를 설정한 다음 디버깅 클라이언트를 활성화해야 합니다.

디버깅 중인 코드는 디버깅 서버를 실행하는 동일한 컴퓨터에서 실행 중이거나 별도의 컴퓨터에서 실행 중일 수 있습니다. 디버깅 서버가 사용자 모드 디버깅을 수행하는 경우 디버깅 중인 프로세스가 디버깅 서버와 동일한 컴퓨터에서 실행될 수 있습니다. 디버깅 서버가 커널 모드 디버깅을 수행하는 경우 디버깅되는 코드는 일반적으로 별도의 대상 컴퓨터에서 실행됩니다.

다음 다이어그램에서는 호스트 컴퓨터에서 실행되는 디버깅 서버가 별도의 대상 컴퓨터에서 실행되는 코드의 커널 모드 디버깅을 수행하는 원격 세션을 보여 줍니다.

커널 모드 디버깅을 위해 연결된 원격, 호스트 및 대상 컴퓨터를 보여 주는 다이어그램

Important

원격 디버깅을 사용할 때 추가적인 중요한 보안 고려 사항이 있습니다. 보안 모드를 사용하도록 설정하는 방법에 대한 자세한 내용은 원격 디버깅 동안 보안 및 Windows 디버깅 도구대한 보안 고려 사항을 참조하세요.

원격 디버깅 연결에 사용할 수 있는 몇 가지 전송 프로토콜은 TCP, NPIPE, SPIPE, SSL 및 COM 포트입니다. TCP를 프로토콜로 사용하도록 선택했고 WinDbg를 디버깅 클라이언트와 디버깅 서버 모두로 사용하도록 선택했습니다. 다음 절차를 사용하여 원격 커널 모드 디버깅 세션을 설정할 수 있습니다.

  1. 호스트 컴퓨터에서 WinDbg를 열고 대상 컴퓨터로 커널 모드 디버깅 세션을 설정합니다. (참조) WinDbg(클래식)를 사용한 라이브 커널 모드 디버깅

  2. 디버그 메뉴에서 중단 선택하거나 Ctrl-Break를 눌러 중단합니다.

  3. 디버거 명령 창에서 다음 명령을 입력합니다.

    .server tcp:port=5005

    포트 번호 5005는 임의입니다. 포트 번호가 선택 사항입니다.

  4. WinDbg는 다음과 유사한 출력으로 응답합니다.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. 원격 컴퓨터에서 WinDbg를 열고 파일 메뉴에서 원격 세션연결을 선택합니다.

  6. 연결 문자열에서 다음 문자열을 입력합니다.

    tcp:Port=5005,Server=YourHostComputer

    여기서 YourHostComputer 는 디버깅 서버를 실행하는 호스트 컴퓨터의 이름입니다.

    확인을 선택합니다.

명령줄 사용

이전 섹션에 제공된 프로시저 대신 명령줄에서 원격 디버깅 세션을 설정할 수 있습니다. 호스트 컴퓨터와 대상 컴퓨터 간에 채널 32의 1394 케이블을 통해 커널 모드 디버깅 세션을 설정하도록 설정되어 있다고 가정합니다. 다음 절차를 사용하여 원격 디버깅 세션을 설정할 수 있습니다.

  1. 호스트 컴퓨터의 명령 프롬프트 창에서 다음 명령을 입력합니다.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. 원격 컴퓨터의 명령 프롬프트 창에서 다음 명령을 입력합니다.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    여기서 YourHostComputer 는 디버깅 서버를 실행하는 호스트 컴퓨터의 이름입니다.

Important

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

추가 정보

이 항목에 표시된 것 외에는 여러 가지 방법으로 원격 디버깅을 설정할 수 있습니다. WinDbg 디버거 명령 창에서 디버깅 서버를 설정하는 방법에 대한 자세한 내용은 .server(디버깅 서버 만들기)를 참조하세요. 명령줄에서 WinDbg를 시작하고 원격 디버깅을 설정하는 방법에 대한 자세한 내용은 WinDbg 명령줄 옵션을 참조 하세요.