[Linux, OSX] Sublime Text 2 & GDB = SublimeGDB Develop Tip


오늘 필요에 따라 Codelite IDE를 이용하여 C++ (g++) 프로그램 개발을 해 보는데
불편함을 느꼈습니다. 주로 에디터에 관한 것이 주를 이루는데,
PyCharm 등과 같이 에디터의 분할이 제대로 되지 않아 오는 불편함이 주를 이루었습니다.

그래서 프로그램 에디터로는 누구한테도 지지 않는 Sublime Text2에서 IDE 처럼 DEBUG를
할 수 있지 않을까 살펴보았습니다.

역시나 Sublime Text 2의 파이썬 플러그인 엔진의 막강함을 이용하여
gdb와 연동한 SublimeGDB 라는 것이 있었습니다.

다음은 설치와 사용법을 기술해 보았습니다.
(리눅스 환경에서 돌렸는데 OS X에서도 gdb가 설치되어 있다면 동일하게 작동할 것입니다)

위와 같이 간단한 프로그램이 있습니다. mmtest.cc 라는 테스트 프로그램과 이것을 make하기위한 Makefile 입니다.

Control+Shift+P 를 눌러 나오는 창에서 위와 같이 install을 눌러 install Package를 실행합니다.
(원격 저장소를 찾는 관계로 수십초 정도 시간 소요가 있을 수 있습니다)

그 다음 나오는 패키지 선택 창에서 "gdb"를 입력하고 하단의 SublimeGDB를 선택합니다.
(역시 수십초 정도 시간 소요 후 설치가 완료됩니다)

이제는 다음과 같이 설정에 관한 것입니다.

위와 같이 메뉴에서 Preferences > Package Settings > SublimeGDB > Settings - User 를 선택한 다음,


{
    "workingdir": "/home/toor/workpy/SMCLinux/ftR_log/ftRlogc/mmtest",
    "commandline": "gdb --interpreter=mi ./mmtest"
}

위와 같은 내용을 넣어 주는데, workingdir에는 디버깅 실행파일의 디렉터리 경로,
commandline의 끝 부분에 실행할 파일이름을 지정해 줍니다.


이제는 유사하게 Key Bindings - User 를 선택하여,


[
    {
        "command": "gdb_step_into",
        "context": [{"key": "gdb_running", "operator": "equal", "operand": true}],
        "keys": ["f8"]
    },
    {
        "command": "gdb_step_out",
        "context": [{"key": "gdb_running", "operator": "equal", "operand": true}],
        "keys": ["shift+f8"]
    }
]


KeyBinding - Default 의 내용 중, F11 의 내용을 가져와서 F8로 바꿔 주었습니다.
(디폴트로 F11이 전체화면 전환이더군요...)

Tools > Build System 에서 make로 되어 있는 것을 확인하고,

Control+B 를 눌러 mmtest 라는 실행파일을 build하였습니다.
(정식 버전이 아니면 build 가 안 먹는 것 같았습니다... T.T
 70불이 적은 금액은 아니지만 설치된 것이 몇 개의 카피이건 운영체제이건 관계없이
 사용자 대상 라이센스이므로 한개를 가질 만 합니다.)

브레이킹 포인트를 걸고 싶은 위치에서 F9키로 중단점을 설정하거나 해지합니다~

F5를 누르면 최초 중단점에 멈춤 상태이며 현재 변수 상태를 확인할 수 있습니다.
(Control+F5를 눌러 SublimeGDB 디버깅 상태를 종료할 수 있습니다)

F8키를 눌러 Step Into 할 수 있으며, 하단 중앙에는 스택이 표시됩니다.

F5를 눌러 프로그램을 계속 수행하다가 그 다음 중단점에서 멈춘 상태입니다.
좌측 하단의 변수 (어레이)인 경우 "+"를 눌러 해당 하위 내용을 Traverse 할 수도 있습니다.

참으로 편리하고 좋은 에디터에 이만한 확장성에 놀라지 않을 수 없습니다.

어느분께는 도움이 되셨기를 바랍니다.




덧글

  • 2014/09/19 00:03 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 2014/09/19 00:10 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 지훈현서아빠 2014/09/19 09:15 # 답글

    제가 요즘에는 거의 sublime-text를 이용하지 않아서 잘 모르겠네요. 죄송합니다.
    대신 http://mcchae.egloos.com/11088835 에 보시면 nemiver 라는 비주얼 디버거가 있구요,
    디버깅 할 때는 이것을 주로 이용하고, PyCharm이라는 파이썬 IDE로 C/C++ 코드도 같이 이용합니다.
    감사합니다~ ^^
  • 열공학생 2014/09/19 12:28 # 삭제 답글

    sublimeGDB에 대한 자료찾기가 쉽지 않네요ㅠ.. 그래도 답변 감사합니다. ^^
  • 열공학생 2014/09/21 03:53 # 삭제 답글

    한 3~4일만에 드디어 해결했네요.. gdb 인증문제.. 문제점 시작부터 보다가 문제해결하고나서 보니 확실히 도움이 되는 글이네요 키값을 f8로 바꾸는 것도요 정말 감사합니다!.
  • 지훈현서아빠 2014/09/21 09:03 #

    도움이 되셨다니 저의 보람입니다~ ㅎㅎ
댓글 입력 영역

구글애드텍스트