2009-04-14 4 views
7

주로 Windows 컴퓨터에서 기본 (초보자 수준) 소프트웨어 개발을 수행했지만 디버깅 프로세스를 단계별로 수행 할 수 있도록 항상 MS Visual Studio를 사용했습니다.Windows 개발자를위한 Linux 디버깅

하지만 지금은 리눅스를 사용하고있는 것처럼 보입니다. 점프를 준비하기 위해 코드/디버그 단계를 안내하는 툴과 툴을 준비하고 싶습니다.

불행히도 내가 Linux에서 디버깅하는 방법에 대해 구두로 물어봤을 때 일반적으로 다음과 같은 대답을 얻습니다. "아, 그냥 인쇄 문구 만 넣으면됩니다." 세상에! 당신이 말하는 방법은 없지만, 그렇습니다. 그들의 대답입니다.

Linux에 있기 때문에 CentOS 32 비트 OS에서 C++ 코드로 작업하게되므로 여기서는 OpenSource 솔루션을 선호합니다. 그래서 CentOS Linux에서 C++ 코드 용 OpenSource IDE를 선호합니다.

통찰력과 제안에 감사드립니다.

답변

5

나는 이클립스 가능한 지원을 듬뿍 성숙한 IDE입니다 Eclipse

을 사용하는 것이 좋습니다 것입니다. 당신이 GDB이 항상있다

+0

Code :: Blocks는 GDB를 내부적으로 사용하기 때문에 GDB만으로도 C :: B와 비교하여 디버깅의 고통이 줄어든 것으로 나타났습니다. –

+0

와우 - 이런 멋진 반응을 예상하지 못했습니다. 이제 나는 시간을 찾아야하며 이러한 모든 아이디어를 실험 할 수있는 기회를 이용해야합니다. 필자는 이클립스로 시작하여 기존의 리눅스 코드베이스를 이전에 한번도 해본 적이없는 IDE로 동축화 할 수 있는지 살펴보고, 수 많은 파일이 있고 현존하거나 정확한 문서가 거의 없다. * 불행히도 * .dsw 또는 existing은 없다. 작업 공간 또는 솔루션 : (나는 다음 단계에서이 짐승을 IDE에서 작동시키는 법을 배울 것입니다. 모든 답장에 대해 다시 한 번 감사드립니다. – JustADude

4
  • 이클립스
  • 넷빈즈
  • KDevelop
2

다른 무언가를 시도하려는 경우

Code::Blocks 있습니다. OSX 용 XCode는 디버깅을 위해 내부적으로 GDB를 사용합니다.

2

Valgrind, 그 친구와 GDB를 겪지 않고도 당신을 구할 수 있습니다.

1

Anjuta은 그놈을위한 정말 훌륭한 IDE입니다. 디버깅을 위해 내부적으로 GDB를 사용합니다.

6

몇 년 전에 저는 VS에서 emacs/make 환경으로 이동했고 결코 되돌아 보지 않았습니다.

아이디어는 makefile을 사용하여 IDE의 프로젝트 관리 측면을 처리하고 편집 및 디버깅을 위해 emacs + gdb를 사용합니다. 이맥스에 익숙해 지려면 잠시 시간이 걸릴 것입니다. 그러나이 막대기에 충실하면 노력할 가치가 있습니다. 이맥스를 시작하면 "Ctrl + H"를 누르고 "t"를 누르면 자습서 페이지로 이동합니다.

기본 사항을 익힌 후에는 모든 IDE/디버거 인터페이스와 비슷한 방식으로 프로그램을 디버깅 할 수 있습니다. 나는이 모든 시간이 지난 후에도 내가 처음 emacs로 옮겼을 때 내가 셋업 한 VS 키 매핑 세트를 여전히 사용한다는 것을 인정해야한다! 위의 keymappings와

(add-hook 'gud-mode-hook 
    '(lambda() 
    (define-key (current-local-map) 
     [f10] 
     'gud-next) 
    (define-key (current-local-map) 
     [f11] 
     'gud-step) 
    (define-key (current-local-map) 
     [\S-f11] 
     'gud-finish) 
    (define-key (current-local-map) 
     [f5] 
     'gud-cont) 
)) 

, 내가 나를 GDB를 실행하라는 메시지가 'F5'를 누르십시오 (: 다른 GDB에

(global-set-key [f7] 'compile)   ;; Run the compile command 
(global-set-key [f4] 'next-error)  ;; The next compile error 
(global-set-key [S-f4] 'previous-error) ;; The previous compile error 
(global-set-key [f5] 'gdb)    ;; Start the debugger 

다음 설정은 "VS"키 매핑은 사용할 수있는 명령 이 명령에 디버깅하고자하는 바이너리를 추가합니다). gdb가로드되면 'f5'키를 눌러 계속 진행하고 'f10'키를 사용하여 스텝 - 오버, 'f11'키를 눌러 스텝 - 인과 'shirt + f11'키를 눌러 탈퇴합니다.

마지막으로 'gdb'를 시작할 때마다 홈 디렉토리에서 '.gdbinit'파일을 읽습니다. 다른 StackOverflow 질문에이 answer이 있었는데 stl-views이주의를 끌었습니다. stl-views은 다른 유형의 STL 컨테이너 내용을 보여주는 gdb의 도우미 함수 세트입니다. 그것을 사용하는 방법에 대한 지침은 링크 상단에서 찾을 수 있습니다.

1

좋은 디버거가 필요한 경우 DDD을 확인하십시오.

0

리눅스에서 디버깅 할 때 gdbcscope의 조합을 사용합니다.