VS2008 & VMWare7 원격디버깅
Visual Studio 원격디버깅 모니터(msvsmon.exe)를 이용하면, Visual Studio로 원격 컴퓨터의 어플리케이션을 디버깅 할 수 있습니다. – 이름하야 원격디버깅….
하지만 원격 디버깅을 하기 위한 준비과정(원격 디버깅 모니터 복사/로그인 인증/ binary&.pdb 복사 등)이 다소 복잡하고, 프로젝트 별로 반복 작업이 필요하기 때문에 디버깅하기가 번거롭습니다.
물론 이 또한 공유폴더와 VS 빌드환경 구성을 통해 어느 정도 자동화 할 수는 있겠으나, 이 역시 불편하기는 매한가지입니다.
좀더 편하게 원격디버깅 할 수 있는 방법은 없을까?
Visual Studio와 VMWare(+Visaul Studio PlugIn)을 이용하면, 상대적으로 간편한 설정으로 원격 디버깅을 할 수 있으니, 설정 방법을 한번 익혀두면 꽤나 편리하게 써 먹을 수 있을 듯 합니다.
1. Requirement
1) Visual Studio 2005, 2008 ( 2010은 지원하지 않음)
2) VMWare 6.x( Intergrated Virtual Debuggers-Visaul Studio PlugIn 설치)
3) Host OS: Windows XP 이상
4) Guest OS: Windows 2000 이상
2. Settings
1) VMWare Guest OS 설정
① Windows Login ID/Password설정
n Host OS의 Login ID/Password와 동일하게 설정합니다.
② Windows 자동로그인 설정(optional)
n 윈도우 자동로그인 설정을 하면 좀더 편하게 디버깅 할 수 있습니다.
n 참고: 2011/09/07 - [Windows Tip] - Windows 자동로그인
2) Visual Studio 설정
① VMWare에서 제공하는 Visual Studio PlugIn을 설치하면, Visaul Studio에 아래와 같은 메뉴와 툴바가 추가됩니다.
② VMWare>options 혹은 툴바의 제일 마지막 메뉴를 선택해서 설정 창을 띄운 후, 아래와 같이 설정합니다.
n Virtual Machine
ü 원격 디버깅할 VMWare 이미지(*.vmx)를 선택합니다.
n Remote Debug Monitor Path
ü Visual Studio 원격디버깅 모니터의 경로를 설정합니다.
ü 해당 위치를 기본으로 잡아주지만, 혹 잡히지 않는 다면 아래의 경로를 지정해 줍니다.(Visual Studio를 C드라이브에 디폴트 경로에 설치 기준)
ü C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe
n Guest Login Credentials
ü 윈도우의 로그인 ID/PASSWORD를 설정합니다.(Guest/Host OS는 동일 User ID/PASWORD를 사용하여 로그인 하도록 설정.)
3) 원격디버깅
① VMWare> Start Live Debugging in VM 혹은 ToolBar의 첫번째 메뉴를 선택해 디버깅을 시작합니다.(이 메뉴는 VM이 구동중이 아니면 VM을 구동한다.)
② 좀더 자세히 살펴보면 해당 메뉴 실행시 다음의 과정을 자동화 해주는 것으로 보입니다.
n Visual Studio 원격디버깅 모니터(msvsmon.exe)가 존재하는 폴더를 Geust OS와 공유
n 디버깅 대상 프로젝트 빌드(필요시)
n 디버깅 대상프로그램의 binary & symbol(.pdb) 를 Guest OS와 공유
n Visual Studio 원격디버깅 모니터 & 디버깅 대상 App 실행(Guest OS)
n 디버깅
③ 즉, 번거로운 복사 및 설정 작업을 자동화 해준다고 보면 되겠습니다.
3. Error
1) 간혹 아래와 같은 창이 뜨는 경우가 있는데, Guest OS의 방화벽문제이거나(Guest OS에서 실행되는 msvsmon.exe를 네트웍엑세스 가능하도록 풀어주면 됩니다.), Guest/Host OS의 로그인 ID/PASSWORD문제 일 수 있느니 확인 해보시기 바랍니다.
메시지에서 알수 있듯이 위의 구성으로 디버깅 하는 경우, Guest/Host OS의 로그인 ID/PASSWORD를 일치시키는 것은 필수 인듯 합니다.
4. Reference
1) VMWare Intergrated Virtual Debuggers-Visaul Studio PlugIn 매뉴얼