[완료]이맥스(emacs), 비쥬얼 스튜디오 디버깅 질문입니다.
글쓴이: withtw / 작성시간: 토, 2009/02/21 - 8:49오전
이맥스에서 비쥬얼스튜디오 프로젝트(VS2003, VS2005, VS2008등...)를
브레이크 포인트 걸어서 실시간 디버깅하는 방법을 알고 싶습니다.
컴파일하는 것까지는 찾았는데 실시간 디버깅하는 것은 찾지 못했습니다.
이것만 알면 완전히 이맥스로 넘어올수 있을것 같습니다.
도움좀 부탁합니다.
Forums:
cdb
msvc 로 빌드한놈은 msvc 로 디버깅하는게 제일 편합니다.
그외 ms 에서 내놓은 디버거들이 몇개 있는데 그중에 cdb 를 쓰면 emacs 와 연동이 가능하긴 하지만
아무래도 gdb 쓰는것처럼 시원하게 쓰기는 힘들더군요.
emacs+cdb 는 http://www.emacswiki.org/emacs/cdb-gud.el 참고하시면 되겠습니다.
다른 방법을 찾았습니다.
비쥬얼스튜디오의 환경을 이맥스에서 똑같이 구현하는 것은 불가능해 보이네요.
천만다행으로 다른 방법을 구현해 놓은 사이트를 찾았습니다.
이 방법의 장점은 아래와 같습니다.
- 이맥스와 비쥬얼스튜디오간의 단축키(F3 또는 M-`)를 이용한 편리한 전환(현재 파일의 현재 라인으로)
- 이맥스에서 단축키(F9)를 이용해 브레이크 포인터 지정이 가능
- 이맥스에서 단축키(F5)를 이용해 디버깅 시작이 가능(비쥬얼스튜디오로 자동전환)
아래에 내용을 정리했습니다. 개인적인 보관용으로 작성한 것이라 반말투입니다.
아래 사이트에 소스도 같이 공개되어 있으니 찬찬히 분석해서 수정하면 원하는 기능을 더 넣을수도 있겠네요.
ECB등과 같이 사용하면 완벽할것 같습니다.
비슷한 기능을 하는 VisEmacs도 있습니다만 이것은 비쥬얼스튜디오에서 이맥스로의 이동만 가능하고,
자동으로 설정해두면 무조건 이맥스로 전환되버리니 오히려 불편하더군요.
-----------------------------------------------------------------------------
해당 비쥬얼스튜디오 버전 = VS2003, VS2005, VS2008(VS2005만 실제로 해봤다.)
사이트 주소 = http://tulrich.com/geekstuff/
(위 사이트에서 "Visual Studio .NET sanity" 부분에서 "DevEnvCommand.exe", "devenv-tricks.el" 두 파일을 다운받는다.)
<< 이맥스에서 >>
1. "DevEnvCommand.exe" 파일을 윈도우즈 시스템 폴더나 PATH가 걸려있는 폴더에 복사한다.
2. "devenv-tricks.el" 파일을 "~/.emacs.d" 폴더로 복사한다.
3. ".emacs" 파일에 아래 코드를 추가한다.
(load "~/.emacs.d/devenv-tricks.el")
참고: 원래 파일에는 비쥬얼스튜디오로 현재파일을 전환하는
단축키가 F3으로 되어 있는데 아무래도 불편하여 "M-`"키로
바꾸어 사용하고 있다. 원래 "M-`"키는 Emacs의 메뉴항목을
미니버퍼에 표시해주는 기능인데 자주사용하지 않으므로 여기서
대신 써버리기로 한다. "devenv-tricks.el" 파일을 열어서
"F3"으로 지정하는 부분을 아래코드로 바꿔주면 된다.
;; (global-set-key [f3] 'switch-to-devenv) // F3대신
(global-set-key "\M-`" 'switch-to-devenv) // M-`로 바꾼다.
<< 비쥬얼스튜디오에서 >>
1. 외부도구로 Emacs를 등록한다.
가. "도구->외부도구" 메뉴를 선택한다.
나. "추가" 버튼을 클릭하고 각 란에 아래와 같이 입력한다.
- 제목 = emacs
- 명령 = C:\Program Files\Emacs\emacs\bin\emacsclientw.exe
- 인수 = -n +$(CurLine) $(ItemPath)
다. "확인"버튼을 눌러 저장한다.
2. 외부도구로 등록한 Emacs에 단축키를 할당한다.
가. "도구->옵션" 메뉴를 선택한다.
나. "환경->키보드" 트리를 선택한다.
다. "다음 문자열을 포함하는 명령 표시(C)"에 "외부"를 입력하고
라. "도구.외부명령?"에 단축키를 할당한다.("?"는 메뉴에 표시되는 순서를 나타내는 번호)
(여기 단축키도 "M-`"로 설정한다.)
* 이맥스에서 비쥬얼스튜디오로 전환할 때는 비쥬얼스튜디오가 실행되어 있어야 한다.
컴파일은
혹시 몰라서 컴파일에 대한 내용도 달아놓습니다.
컴파일은 아래의 링크를 참고하시면 되겠습니다.
http://www.emacswiki.org/cgi-bin/wiki/CompileCommandForDotNet
(현재 코딩중인 파일이 속하는 프로젝트를 자동으로 찾아서 컴파일하도록 하는
소스를 다른분이 해놓은걸 찾긴 했습니다만, lisp언어의 지식이 부족하고
시간도 부족하여 사용하지 못하고 있네요. 정리되면 업데이트 할까 합니다.)
오 이 방법을 한번 해봐야 겠습니다.
VS2005 Emacs key map 사용중이지만 그래도 Emacs의 에디터 기능은 항상 아쉽더군요
이방법으로 코딩은 Emacs에서 실행, 디버깅 등은 VS에서 가능해지겠군요
감사합니다.
잘 가야지.
vs2010 에서도 잘 동작하네요
vs2010 professional 에서 사용하고 있는데 잘 동작 합니다.
emacs로 윈도우에서 VS없이 C/C++ 커맨드라인 컴파일 하기
http://www.emacswiki.org/emacs/MSVisualStudio
이맥스 위키에 잘 정리되어 있군요
댓글 달기