스마트 클라이언트 활성화

DbgSrv 프로세스 서버가 활성화되면 다른 컴퓨터에서 스마트 클라이언트를 만들고 디버깅 세션을 시작할 수 있습니다.

스마트 클라이언트를 시작하는 방법에는 -premote 명령줄 옵션으로 CDB 또는 WinDbg를 시작하거나 WinDbg 그래픽 인터페이스를 사용하는 두 가지 방법이 있습니다.

스마트 클라이언트의 프로토콜은 프로세스 서버의 프로토콜과 일치해야 합니다. 스마트 클라이언트를 시작하기 위한 일반적인 구문은 사용되는 프로토콜에 따라 달라집니다. 다음과 같은 옵션이 있습니다.

Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]

Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]

그래픽 인터페이스를 사용하여 프로세스 서버에 연결하려면 WinDbg가 휴면 모드여야 합니다. 명령줄 매개 변수 없이 시작되었거나 이전 디버깅 세션을 종료했어야 합니다. 파일 선택 | 원격 스텁 메뉴 명령에 연결합니다. 원격 스텁 서버에 연결 대화 상자가 나타나면 연결 문자열 텍스트 상자에 다음 문자열 중 하나를 입력합니다.

npipe:server=Server,pipe=PipeName[,password=Password] 

tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 

tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 

com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] 

또는 찾아보기 단추를 사용하여 활성 프로세스 서버를 찾을 수 있습니다.

이전 명령의 매개 변수에는 다음과 같은 가능한 값이 있습니다.

디버거
CDB 또는 WinDbg일 수 있습니다.

서버
프로세스 서버를 만든 컴퓨터의 네트워크 이름 또는 IP 주소입니다. 두 개의 초기 백슬라이시(\)는 명령줄에서 선택 사항이지만 WinDbg 대화 상자에서는 허용되지 않습니다.

pipe=PipeName
NPIPE 또는 SPIPE 프로토콜을 사용하는 경우 PipeName 은 프로세스 서버를 만들 때 파이프에 지정된 이름입니다.

서버 컴퓨터에 액세스할 수 있는 계정으로 클라이언트 컴퓨터에 로그온하지 않은 경우 사용자 이름과 암호를 제공해야 합니다. 클라이언트 컴퓨터의 명령 프롬프트 창에서 다음 명령을 입력합니다.

net use \\Server\ipc$ /user:UserName

여기서 Server 는 서버 컴퓨터의 이름이고 UserName 은 서버 컴퓨터에 액세스할 수 있는 계정의 이름입니다.

메시지가 표시되면 UserName에 대한 암호를 입력합니다.

이 명령이 성공하면 -premote 명령줄 옵션을 사용하거나 WinDbg 그래픽 인터페이스를 사용하여 스마트 클라이언트를 활성화할 수 있습니다.

참고 서버 컴퓨터에서 파일 및 프린터 공유를 사용하도록 설정해야 할 수 있습니다. 제어판 네트워크 및 인터넷 > 네트워크 및 공유 센터> 고급 공유 설정으로 이동합니다. 파일 및 프린터 공유 켜기를 선택합니다.

port=Socket
TCP 또는 SSL 프로토콜을 사용하는 경우 소켓 은 프로세스 서버를 만들 때 사용한 것과 동일한 소켓 포트 번호입니다.

clicon
프로세스 서버가 역방향 연결을 통해 스마트 클라이언트에 연결을 시도하도록 지정합니다. 서버가 clicon 을 사용하는 경우에만 클라이언트는 clicon을 사용해야 합니다. 대부분의 경우 역방향 연결을 사용할 때 프로세스 서버 앞에 스마트 클라이언트가 시작됩니다.

port=COMPort
COM 프로토콜을 사용하는 경우 COMPort 는 사용할 COM 포트를 지정합니다. 접두사 "COM"은 선택 사항입니다. 예를 들어 "com2" 및 "2"는 모두 허용됩니다.

baud=BaudRate
COM 프로토콜을 사용하는 경우 BaudRate 는 프로세스 서버를 만들 때 선택한 전송 속도와 일치해야 합니다.

channel=COMChannel
COM 프로토콜을 사용하는 경우 COMChannel 은 프로세스 서버를 만들 때 선택한 채널 번호와 일치해야 합니다.

proto=Protocol
SSL 또는 SPIPE 프로토콜을 사용하는 경우 프로토콜 은 프로세스 서버를 만들 때 사용되는 보안 프로토콜과 일치해야 합니다.

인증서
SSL 또는 SPIPE 프로토콜을 사용하는 경우 프로세스 서버를 만들 때 사용된 동일한 certuser=Cert 또는 machuser=Cert 매개 변수를 사용해야 합니다.

password=Password
프로세스 서버를 만들 때 암호를 사용한 경우 스마트 클라이언트를 만들려면 암호를 제공해야 합니다. 원래 암호와 일치해야 합니다. 암호는 대소문자를 구분합니다. 잘못된 암호가 제공되면 오류 메시지에 "오류 0x80004005"가 지정됩니다.

ipversion=6
(Windows 6.6.07 이하용 디버깅 도구만 해당) TCP를 사용하여 인터넷에 연결할 때 디버거가 버전 4가 아닌 IP 버전 6을 사용하도록 합니다. Windows Vista 이상 버전에서 디버거는 IP 버전 6으로 자동 기본값을 설정하려고 시도하므로 이 옵션은 불필요합니다.

옵션
추가 명령줄 매개 변수는 여기에 배치할 수 있습니다. 전체 목록은 명령줄 옵션을 참조하세요. CDB를 사용하는 경우 디버그하려는 프로세스를 지정해야 합니다. WinDbg를 사용하는 경우 명령줄 또는 그래픽 인터페이스를 통해 프로세스를 지정할 수 있습니다.

프로세스 서버는 단순히 스마트 클라이언트의 게이트웨이 역할을 하므로 추가 옵션은 대상 애플리케이션과 동일한 컴퓨터에서 사용자 모드 디버거를 시작한 경우 사용하는 옵션과 동일합니다.

.attach(프로세스에 연결) 또는 .create(프로세스 만들기)와 함께 -premote 옵션을 사용하는 경우 매개 변수는 위에 나열된 매개 변수와 동일합니다.

문제 해결

이 메시지가 표시되면 클라이언트가 서버와 동일한 버전의 원격 프로토콜을 사용하지 않습니다 . 이는 연결하려는 DbgSrv 버전이 WinDbg 버전과 다른 프로토콜 버전을 사용 중임을 나타냅니다.

프로토콜 변경이 이루어지는 것은 드문 일입니다. 이 경우 사용 가능한 최신 버전의 DbgSrv 및 WinDbg(클래식) 또는 WinDbg의 일치하는 버전을 사용하고 있는지 확인합니다. 최신 버전을 다운로드하는 방법에 대한 자세한 내용은 Windows용 디버깅 도구를 참조하세요.