반응형

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 StudioC드라이브에 디폴트 경로에 설치 기준)

ü  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 매뉴얼

 

 

 

 

 

 

 


반응형

+ Recent posts