반응형

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

 

 

 

 

 

 

 


반응형
반응형

VMware를 이용한 원격 디버깅 설정

1. VMware시리얼 포트 추가

    (1) VMware [Edit virtual machine settings] 클릭합니다.

사용자 삽입 이미지

(2) [Add...] 버튼을 클릭합니다.

사용자 삽입 이미지

(3) [Serial Port] 선택 후 계속진행합니다.

사용자 삽입 이미지

(4) [Output to named pipe] 선택 후 계속진행합니다.

사용자 삽입 이미지

(5) Named pipe 이름을 설정합니다.
1) Named pipe 이름 형식은 \\.\pipe\임의지정 형태입니다.

사용자 삽입 이미지

(6) Serial 포트가 추가되었습니다

사용자 삽입 이미지

2. Debugee( VMware내의 OS ) 설정

(1) C드라이브의 boot.ini 파일에 다음 내용을 추가합니다.
아래의 내용은 디버깅 모드와 일반모드의 멀티 부팅을 지원합니다.

[boot loader]

timeout=10

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /debugport=COM1 /baudrate=115200

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

(2) 실제 적용한 내용은 아래와 같습니다.

사용자 삽입 이미지

(3) VMware내의 OS를 부팅하면 아래와 같이 표시됩니다.
[
디버거 사용 가능]을 선택하여 부팅하면 디버깅이 가능합니다

사용자 삽입 이미지
   (4) Windows Vista의 경우, boot.ini파일이 존재하지 않습니다.
  
디버깅 설정을 위해, bcdedit.exe 유틸리티를 사용해야 합니다.
  Command 창에서 다음과 같이 입력합니다.
  1) Serial
포트를 이용하는 경우
     c:\> bcdedit /debug on
     c:\> bcdedit /dbgsettings serial debugport:1 baudrate:115200
  2) IEEE 1394
를 이용하는 경우
     c:\> bcdedit /dbgsettings 1394 channel:23


 


3. WinDBG 설정

     (1) WinDBG 바로가기 파일을 원하는 위치에 복사합니다.

사용자 삽입 이미지

(2) 복사된 바로가기 파일을 오른쪽 마우스 클릭한 후 [속성]메뉴를 선택합니다

(3) [대상] 항목을 다음과 같이 설정합니다.

"C:\Program Files\Debugging Tools for Windows\windbg.exe" -k com:port=\\.\pipe\com_dbg,baud=115200,pipe,reconnect

1) 빨간색으로 표시된 com_dbg 부분은 1.(5)에서 설정한 이름을 적어 줍니다.

사용자 삽입 이미지

4. 디버기(Debugee)와의 연결
(1) 3.에서 설정한 바로가기를 실행합니다.


사용자 삽입 이미지

(2) VMware내의 OS를 구동하면 OS가 부팅되면 다음과 같이 WinDBG와 연결됩니다.

사용자 삽입 이미지

(3) Ctrl+Break를 누르면 다음과 같이 디버깅 모드로 전환 됩니다.

사용자 삽입 이미지

5. OS 심볼 설정

    (1) WinDBG [File>Symbol File Path]메뉴를 선택합니다.

사용자 삽입 이미지

(2) 다음과 같이 심볼파일 경로를 설정하면 OS의 심볼을 로드할 수 있습니다.

srv*c:\symbols.pub*http://msdl.microsoft.com/download/symbols;

사용자 삽입 이미지
   


반응형

+ Recent posts