다음을 통해 공유


디버깅 서버 활성화

디버깅 서버를 활성화하는 방법에는 두 가지가 있습니다. 관리자 권한 명령 프롬프트 창(관리자 권한으로 실행)에서 -server 명령줄 옵션을 사용하여 디버거를 시작할 때 활성화할 수 있습니다. 디버거를 실행한 후에 활성화할 수도 있습니다. 관리자 권한으로 디버거를 시작하고(관리자 권한으로 실행) .server 명령을 입력합니다.

참고 : 상승된 권한 없이 디버깅 서버를 활성화할 수 있으며 디버깅 클라이언트는 서버에 연결할 수 있습니다. 그러나 클라이언트는 상승된 권한으로 활성화되지 않은 한 디버깅 서버를 검색할 수 없습니다. 디버깅 서버를 검색하는 방법에 대한 자세한 내용은 디버깅 서버 검색을 참조 하세요.

디버거는 NPIPE(명명된 파이프), TCP, COM 포트, SPIPE(보안 파이프) 및 SSL(보안 소켓 계층)과 같은 여러 전송 프로토콜을 지원합니다.

디버깅 서버를 활성화하기 위한 일반적인 구문은 사용되는 프로토콜에 따라 달라집니다.

Debugger -server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [-noio] [Options]

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

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

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

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

디버깅 서버를 활성화하는 또 다른 방법은 디버거가 이미 시작된 후 .server(디버깅 서버 만들기) 명령을 사용하는 것입니다.

.server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 

.server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 

.server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 

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

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

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

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

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

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

pipe= PipeName
NPIPE 또는 SPIPE 프로토콜을 사용하는 경우 PipeName 은 파이프의 이름으로 사용할 문자열입니다. 각 파이프 이름은 고유한 디버깅 서버를 식별해야 합니다. 파이프 이름을 다시 사용하려고 하면 오류 메시지가 표시됩니다. PipeName 에는 공백이나 따옴표가 포함되어서는 안 됩니다. PipeName에는 %x 또는 %d와 같은 숫자 printf 스타일 형식 코드가 포함될 수 있습니다. 디버거는 이를 디버거의 프로세스 ID로 바꿉니다. 이러한 두 번째 코드는 디버거의 스레드 ID로 바뀝니다.

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

port= 소켓
TCP 또는 SSL 프로토콜을 사용하는 경우 소켓 은 소켓 포트 번호입니다.

콜론으로 구분된 포트 범위를 지정할 수도 있습니다. 디버거는 이 범위의 각 포트를 확인하여 무료인지 확인합니다. 사용 가능한 포트를 찾고 오류가 발생하지 않으면 디버깅 서버가 만들어집니다. 디버깅 클라이언트는 서버에 연결하는 데 사용되는 실제 포트를 지정해야 합니다. 실제 포트를 확인하려면 디버깅 서버 검색에 설명된 메서드를 사용합니다. 이 디버깅 서버가 표시되면 포트 뒤에 콜론으로 구분된 두 개의 숫자가 붙습니다. 첫 번째 숫자는 사용되는 실제 포트입니다. 두 번째는 무시할 수 있습니다. 예를 들어 포트가 port=51:60으로 지정되고 포트 53이 실제로 사용된 경우 검색 결과에 "port=53:60"이 표시됩니다. (clicon 매개 변수를 사용하여 역방향 연결을 설정하는 경우 디버깅 클라이언트는 이러한 방식으로 포트 범위를 지정할 수 있지만 서버는 사용되는 실제 포트를 지정해야 합니다.)

clicon= 클라이언트
TCP 또는 SSL 프로토콜을 사용하고 clicon 매개 변수를 지정하면 역방향 연결이 열립니다. 즉, 디버깅 서버는 클라이언트가 연락처를 시작하도록 하는 대신 디버깅 클라이언트에 연결하려고 합니다. 일반적인 방향으로 연결을 차단하는 방화벽이 있는 경우 유용할 수 있습니다. 클라이언트 는 디버깅 클라이언트가 있거나 생성될 컴퓨터의 네트워크 이름 또는 IP 주소를 지정합니다. 두 개의 초기 백슬라이시(\)는 선택 사항입니다.

서버는 하나의 특정 클라이언트를 찾고 있으므로 이 메서드를 사용하는 경우 여러 클라이언트를 서버에 연결할 수 없습니다. 연결이 거부되거나 끊어진 경우 서버 연결을 다시 시작해야 합니다. 다른 디버거가 모든 활성 서버를 표시하면 역방향 연결 서버가 표시되지 않습니다.

참고: clicon을 사용하는 경우 일반적인 순서(클라이언트 이전 서버)도 허용되지만 디버깅 서버를 만들기 전에 디버깅 클라이언트를 시작하는 것이 가장 좋습니다.

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

baud= BaudRate
COM 프로토콜을 사용하는 경우 BaudRate 는 연결이 실행되는 전송 속도를 지정합니다. 하드웨어에서 지원하는 모든 전송 속도는 허용됩니다.

channel= COMChannel
COM 프로토콜을 사용하는 경우 COMChannel 은 디버깅 클라이언트와 통신하는 데 사용할 COM 채널을 지정합니다. 0에서 254 사이의 값(포함)일 수 있습니다. 여러 채널 번호를 사용하여 여러 연결에 단일 COM 포트를 사용할 수 있습니다. (이는 디버그 케이블에 COM 포트를 사용하는 것과 다릅니다. 이 경우 COM 포트 내에서 채널을 사용할 수 없습니다.)

proto= 프로토콜
SSL 또는 SPIPE 프로토콜을 사용하는 경우 프로토콜 은 S-채널(Secure Channel) 프로토콜을 지정합니다. tls1, pct1, ssl2 또는 ssl3 문자열 중 하나일 수 있습니다.

인증서
SSL 또는 SPIPE 프로토콜을 사용하는 경우 Cert 는 인증서를 지정합니다. 인증서 이름 또는 인증서의 지문(인증서의 스냅인에서 제공하는 16진수 문자열)일 수 있습니다. certuser=Cert 구문을 사용하는 경우 디버거는 시스템 저장소(기본 저장소)에서 인증서를 조회합니다. 구문 machuser=Cert 를 사용하는 경우 디버거는 컴퓨터 저장소에서 인증서를 조회합니다. 지정된 인증서는 서버 인증을 지원해야 합니다.

숨겨진
다른 디버거가 모든 활성 서버를 표시할 때 서버가 표시되지 않도록 합니다.

password= 암호
디버깅 세션에 연결하려면 클라이언트가 지정된 암호를 제공해야 합니다. 암호 는 최대 12자까지의 영숫자 문자열일 수 있습니다.

경고 TCP, NPIPE 또는 COM 프로토콜에서 암호를 사용하면 암호가 암호화되지 않으므로 소량의 보호만 제공됩니다. 암호가 SSL 또는 SPIPE 프로토콜과 함께 사용되는 경우 암호화됩니다. 보안 원격 세션을 설정하려면 SSL 또는 SPIPE 프로토콜을 사용해야 합니다.

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

-noio
-noio 옵션을 사용하여 디버깅 서버를 만든 경우 서버 자체를 통해 입력 또는 출력을 수행할 수 없습니다. 디버거는 디버깅 클라이언트(-c 명령줄 옵션으로 지정된 모든 초기 명령 또는 명령 스크립트)의 입력만 허용합니다. 모든 출력은 디버깅 클라이언트로 전달됩니다. -noio 옵션은 KD, CDB 및 NTSD에서만 사용할 수 있습니다. 서버에 NTSD를 사용하는 경우 콘솔 창이 전혀 만들어지지 않습니다.

IcfEnable
인터넷 연결 방화벽이 활성 상태일 때 디버거가 TCP 또는 명명된 파이프 통신에 필요한 포트 연결을 사용하도록 설정합니다. 기본적으로 인터넷 연결 방화벽은 이러한 프로토콜에서 사용하는 포트를 사용하지 않도록 설정합니다. IcfEnable을 TCP 연결과 함께 사용하는 경우 디버거는 Windows에서 Socket 매개 변수로 지정된 포트를 열게 합니다. IcfEnable을 명명된 파이프 연결과 함께 사용하는 경우 디버거는 Windows에서 명명된 파이프에 사용되는 포트(포트 139 및 445)를 엽니다. 디버거는 연결이 종료된 후 이러한 포트를 닫지 않습니다.

옵션
여기에 추가 명령줄 매개 변수를 배치할 수 있습니다. 전체 목록은 명령줄 옵션을 참조하세요.

.server 명령을 사용하여 여러 프로토콜 옵션을 사용하여 여러 서버를 시작할 수 있습니다. 이렇게 하면 다양한 종류의 디버깅 클라이언트가 세션에 참가할 수 있습니다.

참고 항목

원격 디버깅 세션 제어

.endsrv(엔드 디버깅 서버)