본문 바로가기
프로그래밍/C#

비주얼 스튜디오로 원격 디버깅(Remote Debugging) 하기

by 꾸용꾸용 2018. 12. 23.

비주얼 스튜디오를 이용 C#에서 원격 디버깅 하기


보통은 개발 환경을 Local PC에 설치하여 직접 디버깅을 하는것이 가장 빠르면서도 좋은 환경이긴 하나

때에 따라 보안등의 이유로 부득이하게 개발 환경을 설치 하기 어려울 경우 원격 디버깅을 사용하면

실제 로컬과 비슷한 수준의 디버깅을 하실 수 있습니다.



 간단하게 개념도를 보면 아래와 같습니다.

           Host PC                     Remote PC


위와 같은 원격 디버깅을 진행 하시기 위해서는 우선 네트워크 연결을 하여 Remote PC에 

디버깅 심볼과 바이너리를 받을수 있도록 공유 폴더를 만들어 두시고 또한 비주얼 스튜디오에서 제공하는 

Remote Debugging Monitor(msvsmon.exe) 툴을 Remote PC에서 실행 할 수 있도록 복사 하셔야 합니다.


결론적으로 위 프로그램이 Host PC의 Runtime시에 원격 디버거 역활을 하게 됩니다.


경로 : C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Remote Debugger

해당 경로에서 운영체제 버전에 맞게 사용하시면 됩니다.(x64 : 64비트 운영체제, x86 : 32비트 운영체제)


또한 비주얼 스튜디오 버전별로 폴더 명이 다르니 참고 하시기 바랍니다.

Visual Studio 2010 -> C:\Program Files (x86)\Microsoft Visual Studio 11.0

Visual Studio 2013 -> C:\Program Files (x86)\Microsoft Visual Studio 12.0

Visual Studio 2015 -> C:\Program Files (x86)\Microsoft Visual Studio 14.0


[ Host PC 설정 ]

1) 비주얼 스튜디오 빌드 구성 추가 (Remote)


위 설정 처럼 출력 경로와 작업 디렉토리를 현재 로컬 PC의 폴더가 아닌 

원격 디버깅 할 PC의 IP 주소와 공유 폴더의 경로를 지정 해주셔야 합니다.


[ Remote PC 설정 ]


Host PC의 비주얼 스튜디오에서 빌드 구성을 원격으로 설정한 뒤에 

프로젝트를 원격 디버깅으로 런타임 하기 하기 위해서는 Remote PC에 원격 디버거를 실행 시켜야 합니다.

아래와 같이 msvsmon.exe를 Remote PC에서 실행 해야 합니다.






위와 같이 별다른 설정 변화 없이 바로 시작 하시면 됩니다.

비주얼 스튜디오 버전 별로 TCP/IP 포트 번호가 다를 수 있습니다.


또한 아래와 같이 Host PC에서 컴파일을 완료하면

지정한 Remote PC의 공유 폴더에 바이너리 파일이 생성 되어야 합니다.




이후 Host PC에서 실행을 하면 Remote PC에서 구동이 되며 라인 단위로 브레이크 포인터를

실행 할 수 있게 됩니다.


또한 msvsmon.exe을 통하여 Host PC에서 접속 한 내역도 확인 가능합니다.