스마트 클라이언트 활성화

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

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

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

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

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

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

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

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

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

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

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

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

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용 디버깅 도구를 참조 하세요.