최상의 원격 디버깅 방법 선택
원격 디버깅을 수행하는 두 가지 기본 메서드뿐만 아니라 몇 가지 추가 메서드와 엄청난 수의 조합 메서드가 있습니다.
다음은 최상의 기술을 선택하는 데 도움이 되는 몇 가지 팁입니다.
디버거을 통해 원격 디버깅을
하는 것이 가장 좋습니다. 하나의 서버와 하나의 클라이언트만 있고 서로 자유롭게 연결할 수 있는 경우 클라이언트와 서버 모두에 동일한 디버거 이진 파일이 설치되고 클라이언트를 운영할 디버깅 기술자가 서버와 함께 회의실에 있는 다른 사람과 통신할 수 있는 것이 좋습니다. 클라이언트와 서버는 모든 버전의 Windows를 실행할 수 있습니다. 서로 동일한 버전을 실행할 필요는 없습니다.
클라이언트가 서버에 연결 요청을 보낼 수 없지만 서버가 클라이언트에 요청을 보낼 수 있는 경우 clicon 매개 변수를 사용하여 역방향 연결 디버거를 통해 원격 디버깅을 사용할 수 있습니다.
remote.exe 통한
원격 디버깅은 명령 프롬프트 창을 원격으로 제어하는 데 사용됩니다. KD, CDB 또는 NTSD를 원격으로 제어하는 데 사용할 수 있습니다. WinDbg와 함께 사용할 수 없습니다. 클라이언트에 디버거 이진 파일의 복사본이 없는 경우 remote.exe 메서드를 사용해야 합니다.
디버깅 기술자가 서버와 채팅방의 다른 사람과 통신할 수 없는 경우 프로세스 서버 또는 KD 연결 서버 사용할 수 있습니다. 모든 실제 디버깅 작업은 클라이언트(스마트 클라이언트)에 의해 수행됩니다. 이렇게 하면 두 번째 사용자가 서버 자체에 있을 필요가 없습니다.
프로세스 서버는 사용자 모드 디버깅에 사용됩니다. KD 연결 서버는 커널 모드 디버깅에 사용됩니다. 이 구별 이외에, 그들은 비슷한 방식으로 작동합니다.
이 방법은 서버가 실행 중인 컴퓨터가 무거운 프로세스 로드를 처리할 수 없거나 클라이언트를 실행하는 기술자가 기밀이며 서버에서 액세스할 수 없는 기호 파일 또는 원본 파일에 액세스할 수 있는 경우에도 유용합니다. 그러나 이 메서드는 디버거를 통한 원격 디버깅만큼 빠르거나 효율적이지 않습니다. 이 메서드는 덤프 파일 디버깅에 사용할 수 없습니다.
자세한 내용은 프로세스 서버(사용자 모드) 및 KD 연결 서버(커널 모드) 참조하세요.
반복기 두 컴퓨터 간에 데이터를 중계하는 경량 프록시 서버입니다. 디버거를 통해 원격 디버깅을 수행하거나 프로세스 서버를 사용하는 경우 클라이언트와 서버 사이에 리피터를 추가할 수 있습니다.
클라이언트와 서버가 서로 직접 통신할 수 없지만 각각 외부 컴퓨터에 액세스할 수 있는 경우 반복기를 사용해야 할 수 있습니다. 리피터를 사용하여 역방향 연결을 사용할 수도 있습니다. 두 개의 반복기를 연속으로 사용할 수도 있지만 거의 필요하지 않습니다.
반복기에 대한 자세한 내용은 참조하세요.
커널 디버거에서 CDB(또는 NTSD)를 제어할 수도 있습니다. 이것은 또 다른 형태의 원격 디버깅입니다. 자세한 내용은 커널 디버거에서의 User-Mode 디버거 제어
를 참조하세요.
이러한 모든 메서드의 변형이 가능합니다.
여러 컴퓨터를 함께 연결하여 둘 이상의 전송 방법을 활용할 수 있습니다. 기술자가 있는 위치, 기호가 있는 위치 및 특정 방향으로 연결을 차단하는 방화벽이 있는지 여부를 고려하는 복잡한 전송 시퀀스를 만들 수 있습니다. 몇 가지 예제는 고급 원격 디버깅 시나리오 참조하세요.
단일 컴퓨터에서 원격 디버깅을 수행할 수도 있습니다. 예를 들어 낮은 권한 프로세스 서버를 시작한 다음 높은 권한의 스마트 클라이언트를 사용하여 연결하는 것이 유용할 수 있습니다.
중요하다
원격 디버깅을 사용하는 경우 중요한 보안 고려 사항이 있습니다. 보안 모드를 사용하는 방법에 대한 자세한 내용은 원격 디버깅