다음을 통해 공유


프로세스 서버 활성화

Windows용 디버깅 도구에 포함된 프로세스 서버를 DbgSrv(dbgsrv.exe)라고 합니다. 프로세스 서버를 활성화하려면 관리자 권한 명령 프롬프트 창(관리자 권한으로 실행)을 열고 dbgsrv 명령을 입력합니다.

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

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

dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

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

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

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

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

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

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

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

참고 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 를 사용하는 경우 디버거는 컴퓨터 저장소에서 인증서를 조회합니다. 지정된 인증서는 서버 인증을 지원해야 합니다.

숨겨진
다른 사용자가 -QR 명령줄 옵션을 사용하여 모든 활성 서버를 표시할 때 프로세스 서버가 표시되지 않도록 합니다.

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

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

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

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

-sifeo 실행 파일
지정된 이미지에 대한 IFEO(이미지 파일 실행 옵션) 값을 일시 중단합니다. 실행 파일에 는 파일 이름 확장명을 포함하여 실행 파일 이미지의 파일 이름이 포함되어야 합니다. -sifeo 옵션을 사용하면 DbgSrv를 IFEO 설정으로 인해 재귀 호출을 일으키지 않고 -c 옵션으로 만든 이미지에 대한 IFEO 디버거로 설정할 수 있습니다. 이 옵션은 -c를 사용하는 경우에만 사용할 수 있습니다.

-c
DbgSrv가 새 프로세스를 만들도록 합니다. 이를 사용하여 디버그하려는 프로세스를 만들 수 있습니다. 이 프로세스는 디버거를 만들 때 디버그되지 않는다는 점을 제외하고 디버거에서 새 프로세스를 생성하는 것과 유사합니다. 이 프로세스를 디버그하려면 해당 PID를 결정하고 스마트 클라이언트를 시작할 때 -p 옵션을 사용하여 이 프로세스를 디버그합니다.

s
새로 만든 프로세스가 즉시 일시 중단되도록 합니다. 이 옵션을 사용하는 경우 CDB를 스마트 클라이언트로 사용하고 -pb 명령줄 옵션을 사용하여 스마트 클라이언트를 -p PID와 함께 시작하는 것이 좋습니다. 명령줄에 -pb 옵션을 포함하면 디버거가 연결될 때 프로세스가 다시 시작되고, 그렇지 않으면 ~*m 명령을 사용하여 프로세스를 다시 시작할 수 있습니다.

AppCmdLine
만들 프로세스의 전체 명령줄을 지정합니다. AppCmdLine 은 유니코드 또는 ASCII 문자열일 수 있으며 인쇄 가능한 문자를 포함할 수 있습니다. -c[s] 매개 변수 후에 나타나는 모든 텍스트는 AppCmdLine 문자열을 형성하기 위해 사용됩니다.

-x
명령줄의 나머지 부분을 무시합니다. 이 옵션은 명령줄에 원치 않는 텍스트를 추가할 수 있는 애플리케이션에서 DbgSrv를 시작하는 경우에 유용합니다.

-개인용 컴퓨터
명령줄의 나머지 부분을 무시합니다. 이 옵션은 명령줄에 원치 않는 텍스트를 추가할 수 있는 애플리케이션에서 DbgSrv를 시작하는 경우에 유용합니다. 구문 오류는 -pc가 DbgSrv 명령줄의 마지막 요소인 경우 발생합니다. 이 제한 사항 외에도 -pc는 -x동일합니다.

한 컴퓨터에서 원하는 수의 프로세스 서버를 시작할 수 있습니다. 그러나 여러 스마트 클라이언트(각각 다른 디버깅 세션에 참여)에서 하나의 프로세스 서버를 사용할 수 있으므로 일반적으로 필요하지 않습니다.