it-swarm-ko.tech

Linux 용 C ++ gdb GUI가 있습니까?

간단히 말하면, 최신 버전의 Visual C++에서 제공하는 기능 세트와 비슷하거나 그와 유사한 GUI를 gdb 용 GUI에 대해 알고 있습니까?

세부 사항 : Windows에서 많은 시간을 보낸 사람으로서 Linux에서 C++을 코딩해야 할 때 발견 한 가장 큰 걸림돌 중 하나는 명령 줄 gdb를 사용하여 디버깅 할 때보 다 몇 배 더 오래 걸립니다. Visual Studio 및 연습을 통해 더 나아지지 않는 것 같습니다. 어떤 것은 그래픽으로 표현하기가 더 쉽고 빠릅니다.

특히, 나는 다음과 같은 GUI를 찾고 있습니다.

  • 스테핑 및 코드 스테핑, 변수 및 중단 점과 같은 모든 기본 사항을 처리합니다.
  • 복잡하고 중첩 된 C++ 데이터 유형의 내용을 이해하고 표시 할 수 있습니다.
  • 매개 변수 유형과 같은 관련 정보를 표시하면서 템플릿 코드 및 데이터 구조를 지능적으로 단계별로 혼동 할 수 있으며 바람직하지 않습니다.
  • 스레드 응용 프로그램을 처리하고 다른 스레드간에 전환하여 상태를 단계별로 보거나 볼 수 있습니다.
  • Gdb에서 프로그램을 시작하는 것 외에도 이미 시작된 프로세스에 연결하거나 코어 덤프를 읽을 수 있습니다.

그러한 프로그램이 존재하지 않는다면 사람들이 최소한 몇 가지 요점을 충족시키는 프로그램에 대한 경험에 대해 듣고 싶습니다. 누구든지 권장 사항이 있습니까?

편집 :
가능성을 나열하는 것은 훌륭합니다. 제가 얻을 수있는 것을 취할 것입니다. 그러나 답변에 포함시킬 수 있다면 더욱 도움이 될 것입니다.
(a)이 GUI를 실제로 사용했는지 여부와 사용하는 경우 이에 대한 긍정적/부정적 피드백.
(b) 알고있는 경우 위에 언급 된 기능 중 지원되지 않는 기능

응용 프로그램에 대한 사람들의 개인적인 경험에 대한 아이디어를 얻을 수 있기 때문에 목록을 쉽게 얻을 수 있습니다.

204
HappyDude

Visual Studio 디버거의 강력한 성능과 경쟁 할 수있는 anything 오버레이 GDB를 찾을 수 없습니다. 너무 강력하고 IDE에 너무 잘 통합되어 있습니다.

Linux 대안의 경우 무료 소프트웨어가 필요한 경우 DDD를 시도하십시오.

55
Vicent Marti

Eclipse CDT는 Visual Studio를 사용하는 것과 비슷한 경험을 제공합니다. 매일 코드를 작성하고 로컬 및 원격 프로세스를 디버깅하기 위해 Eclipse CDT를 사용합니다.

Eclipse 기반 IDE 사용에 익숙하지 않은 경우 GUI에 약간 익숙해집니다. 그러나 일단 Eclipse (예 : 관점)에 고유 한 GUI 아이디어를 이해하면 도구를 사용하는 것이 멋진 경험이됩니다.

CDT 툴링은 코드 기반에서 메소드에 대한 참조를 빠르게 찾을 수있는 적절한 C/C++ 색인기를 제공합니다. 또한 멋진 매크로 확장 도구와 제한된 리팩토링 지원을 제공합니다.

디버깅 지원과 관련하여 CDT는 코어 덤프를 읽는 것을 제외하고 목록의 모든 작업을 수행 할 수 있습니다 (지원할 수도 있지만이 기능을 사용하려고 한 적이 없습니다). 또한 템플릿을 사용한 코드 디버깅 경험이 제한되어 있으므로 CDT가 어떤 경험을 제공하는지 잘 모르겠습니다.

Eclipse CDT를 사용한 디버깅에 대한 자세한 정보는 다음 안내서를 확인하십시오.

84
Jon Ball

gUI-ish를 원하지만 여전히 문자 기반을 원한다면 gdb -tui는 정상적으로 작동합니다.

78
Carleton

Nemiver C/C++ Debugger 를 확인하십시오. Ubuntu (개발자 도구/디버깅)에 쉽게 설치할 수 있습니다.

업데이트 : 새 링크.

47
Sergey Shandar

Windows 개발에 대한 아이디어를 싫어하지만 VC++ 디버거는 내가 본 것 중 최고입니다. VC 하나에 가까운 GUI 프론트 엔드를 찾지 못했습니다.

GDB는 일단 익숙해지면 훌륭합니다. 분노로 충분히 사용하면 매우 능숙해질 것입니다. 더 이상 많은 노력을 기울이지 않고 나열된 모든 것을 수행하는 프로그램을 둘러 볼 수 있습니다. 내가 유능하기 전에 원격 서버에 대한 SSH 링크로 인해 약 한 달 정도 걸렸습니다. 나는 다시는 가지 않을 것이다.

DDD는 정말 강력하지만 버그가 많았습니다. GDB에서 메시지를 받았을 때 그 메시지가 들리지 않는 경우가 자주 발생했습니다. gdb 인터페이스 창이 있기 때문에 진행 상황을 확인하고 gdb와 직접 상호 작용할 수 있기 때문에 좋습니다. 어떤 이유로 든 DDD를 내 환경의 원격 X 세션에서 사용할 수 없습니다 (유닉스 개발을 할 때 씬 클라이언트에 앉아 있기 때문에 실제 문제).

KDevelop는 전형적인 KDE 스타일을 따르고 사용자에게 모든 것을 노출 시켰습니다. 또한 KDevelop에서 KDevelop 이외의 프로그램을 디버깅하는 데 운이 없었습니다.

Gnat Programming Studio (GPS)는 실제로 GDB에 대한 훌륭한 프론트 엔드입니다. Ada 프로젝트를 관리하는 것이 아니라 디버거가 필요한지 시험해 볼 가치가 있습니다.

이클립스를 사용할 수는 있지만 무게가 꽤 나가서 함께 일한 많은 유닉스 사람들이 인터페이스에 신경 쓰지 않습니다 .STFU뿐만 아니라 길을 벗어날 수도 있습니다. 이클립스는 또한 많은 공간을 차지하고 개처럼 달린다.

29
Adam Hawes

Qt Creator는 좋은 것 같습니다. 동료가 디버깅을 위해 설정하는 한 가지 방법을 보여주었습니다.

  • "Makefile 기반 프로젝트 가져 오기"새 프로젝트를 작성하십시오.
  • 루트 프로젝트 폴더를 지정하십시오 (그 아래의 소스를 색인화하고 매우 빠릅니다).
  • 프로젝트 설정으로 이동하여 실행 구성을 추가 한 다음 디버깅 할 실행 파일 및 해당 인수를 지정하십시오.
  • Qt Creator는 프로젝트를 디버깅하기 전에 프로젝트를 빌드해야한다고 주장합니다. 원하지 않거나 make를 사용하지 않으면 make 명령을 무시할 수 있습니다. "true"로 변경했습니다. :)

이미 컴파일 한 앱을 디버깅하는 데 약간의 작업처럼 보일 수 있지만 그만한 가치가 있습니다. 디버거는 스레드, 스택 및 로컬 변수를 Visual Studio와 유사한 방식으로 표시하며 동일한 키보드 단축키를 많이 사용합니다. 적어도 std :: string 및 std :: map과 같은 템플릿을 잘 처리하는 것 같습니다. 아직 테스트하지는 않았지만 기존 프로세스 및 코어 덤프에 연결하는 것이 지원되는 것 같습니다.

지금은 한 시간도 채 걸리지 않았지만 지금까지는 감동했습니다.

28
Soulman

간단하고 유용한 gdb를 사용합니다.

26
cod

나는 DDD를 많이 사용하며, 사용법을 익히면 꽤 강력합니다. 내가 말하고자하는 한 가지는 WAN 이상으로 X를 사용하지 않는 것입니다. 왜냐하면 그것은 많은 불필요한 화면 업데이트를하는 것처럼 보입니다.

또한 GDB를 사용하지 않고 약간의 현금을 모으는 것을 신경 쓰지 않으면 TotalView를 사용해보십시오. 약간 가파른 학습 곡선이 있지만 (더 직관적 일 수는 있지만) 모든 플랫폼에서 사용했던 최고의 C++ 디버거이며 사용자 정의 방식으로 객체를 조사하도록 확장 할 수 있습니다 (따라서 STL 목록은 실제 객체 목록으로, 혼란스러운 내부 데이터 멤버 등은 아닙니다.)

16
Nick Bastin

Eclipse CDT 프로젝트를 확인하십시오. C/C++ 개발을위한 Eclipse 용 플러그인이며 상당히 풍부한 기능의 디버깅 관점을 포함합니다 (장면에서 GDB를 사용함). 다양한 플랫폼에서 사용할 수 있습니다.

8
user14636

이클립스 gdb 프론트 엔드와 비슷하게 emacs 프론트 엔드가 emacs IDE와 밀접하게 연결되어있다. 이미 emacs로 작업하고 있다면 다음을 좋아할 것입니다.

GDB 이맥스 프론트 엔드

KDbg를 사용했습니다 (KDE에서만 작동합니다).

6
codeguru

Qt Creator-on-Linux는 요즘 C++ 용 Visual Studio-on-Windows와 동등합니다. 나는 심지어 디버거 쪽에서 더 잘 말할 것입니다.

5
Marv

IDE이 목록에는없고 매우 효율적입니다. (문제없이 많은 C/C++ 프로젝트에서 사용했습니다) : Netbeans .

5
Florent

DDD는 GNU gdb의 프론트 엔드입니다 : http://www.gnu.org/software/ddd/

5
mmattax

나는 gdb를 위해 몇 가지 다른 GUI를 시도했으며 DDD가 더 나은 것으로 나타났습니다. 그리고 리눅스를위한 다른 비 gdb 제품에 대해서는 언급 할 수 없지만 다른 플랫폼에서 다른 많은 디버거를 사용했습니다.

gdb는 위시리스트에있는 대부분의 작업을 수행합니다. DDD는 그들에게 더 나은 정면을 제시합니다. 예를 들어 스레드 전환이 더 간단 해집니다. 중단 점 설정은 예상대로 간단합니다.

당신이하고 싶지 않은 무언가가있는 경우에 대비하여 cli window를 얻습니다.

내가 사용한 다른 디버거보다 뛰어난 DDD의 기능 중 하나는 데이터 "그래프"입니다. 이를 통해 구조, 객체 및 메모리를 드래그 가능한 상자로 표시하고 배열 할 수 있습니다. 포인터를 두 번 클릭하면 부모에 대한 시각적 링크가있는 참조 해제 된 데이터가 열립니다.

5
Andrew Edgecombe

DS-5 디버거 를 본 적이 있습니까?

많은 유용한 기능이 포함 된 유료 버전이 있지만 Community Edition을 무료로 사용할 수도 있습니다 (또한 임베디드 시스템에 매우 유용합니다).

Eclipse를 사용하여 실제 장치에서 Android 응용 프로그램을 디버깅 할 때이 도구에 대한 긍정적 인 경험이 있습니다.

3
Viktor Malyi

Visual Studio에 익숙한 사람으로서,이를 대체하기 위해 몇 가지 오픈 소스 IDE를 살펴 봤으며 KDevelop는 Visual C++ 사용자가 앉아서 사용할 수있는 가장 가까운 IMO를 제공합니다. 디버깅 모드에서 프로젝트를 실행하면 gdb를 사용하지만 kdevelop는 gdb를 알 필요가 없도록 모든 것을 처리합니다. 변수를 한 단계 씩 밟거나 시계를 지정하기 만하면됩니다.

불행히도 여전히 Visual Studio Debugger만큼 좋지 않습니다.

3
Dennis Ferron

Windows를 사용하는지 아니면 UNIX를 사용하는지에 대해서는 언급하지 않습니다.

UNIX 시스템에서 KDevelop 는 좋지만 KDbg 는 사용하기 쉽고 KDevelop에서 개발되지 않은 앱에서도 작동하기 때문에 사용합니다.

Eclipse 두 플랫폼 모두에서 우수합니다.

Windows에는 Wascana Desktop Developer 라는 훌륭한 패키지가 있습니다. Eclipse CDT 및 MinGW는 모두 최소한의 고통으로 패키지되고 사전 구성되어 있습니다. Windows에서 GNU 코드를 개발할 때 찾은 것이 가장 좋습니다.

이 디버거를 모두 사용했지만 MS Dev Studio만큼 좋은 것은 없습니다. Eclipse/Wascana는 아마도 가장 가까운 것이지만 DLL에 들어 가지 못하고 변수를 검사하는 데 좋지 않은 한계가 있습니다.

3
Adam Pierce

단계별로 수행 할 수있는 것은 g ++에서 생성하는 디버깅 정보에 의해 크게 제한 될 것입니다. Emacs는 도구 모음/메뉴를 통해 제어하고 별도의 창에 데이터를 표시하고 gdb 명령을 직접 입력 할 수있는 gdb 인터페이스를 제공합니다. Eclipse의 CDT는 유사한 도구를 제공합니다. Anjuta와 Code :: Blocks에 대해 들었지만 결코 사용하지 않았습니다.

3
Allen

Code : Blocks C++ IDE에는 원하는 몇 가지 기능을 갖춘 그래픽 래퍼가 있지만 VS의 힘과는 다릅니다.

2
crobar

VisualGDB 는 Linux 및 임베디드 플랫폼에서 응용 프로그램을 개발하고 디버깅하는 또 다른 Visual Studio 플러그인입니다.

2
Sergey Zhukov

Cygwin gdb로 gdb -w를 사용해 보셨습니까? 상당히 잘 작동하는 Windows 인터페이스가 있다고 가정합니다.

내가 찾은 유일한 문제는 현재 컴퓨터에서 ddd를 설치 한 후에야 실행되지 않았다는 것입니다. ddd를 설치할 때 설치된 tcltk가 필요하다고 생각합니다.

1
BubbaT

KDevelop는 꽤 잘 작동합니다.

1
Harold Ekstrom

Visual Studio에서 gdb를 찾고 있다면 WinGDB 를 확인하십시오.

0
Dominic.wig

최신 버전의 Geany가 지원합니다 (Linux에서만)

0
Milan Babuškov

지난 15 개월 동안 통찰력을 사용합니다 (FC6과 함께 제공). 훌륭하지는 않지만 Tcl/Tk로 작성되었지만 간단하고 유용합니다. DDD는 품질/유틸리티는 비슷하지만 사용하기가 다소 어렵습니다 (다양한 GUI 문제 및 누락). 또한 gdb를 IDE 인 SlickEdit과 통합하려고 시도했습니다. 그것은 잘 작동했습니다 (약 4 시간 동안 연주했습니다).하지만 GUI 컨텍스트 스위치는 마음에 들지 않았습니다. 디버깅하는 동안 내 IDE 변경되지 않은 상태로 유지하는 것을 좋아합니다 .Windows에서는 IDE에 SlickEdit을 사용하고 디버깅에 Visual Studio Debugger를 사용합니다. , DDD 및 SlickEdit, Insight가 나의 첫 번째 선택이며,> 95 % 이상의 시간을 사용하고, 명령 줄 gdb 및 DDD가 다른 5 %를 구성합니다. 기회를 얻는다면 Eclipse를 평가할 것입니다. PC가 이클립스를 합리적으로 실행하기에 충분한 RAM (1GB 만))을 가지고 있지 않은 것 같습니다.

또한 면접 중 첫 손을 포함하여 TotalView에 대한 많은 찬사를 들었습니다. 나는 2008 년 말에 회사의 평가를 받았지만 결국 gdb가 우리의 요구에 충분하기 때문에 진행하지 못했습니다. 그리고 그것은 자유롭고 편재합니다.

0
Radim Cernej

실행중인 프로그램을 단계별로 실행하기 위해 디버거를 찾고있었습니다. 말하기 : 첨부. 이 프로그램은 Eclipse로 빌드되었지만 멀티 스레딩 장애물 때문에 소스 파일이없는 곳일 수 있습니다. 뭐야.

NetBeans에 매우 익숙해졌습니다.

  • 메뉴에서 [debug]-> Deugger 연결 ...
  • 프로세스가 디버깅 할 것을 선택함에 따라
  • 프로젝트 [새 프로젝트]

이제 창이 사라지고 아무것도 보이지 않습니다. 프로세스에서 분리하십시오. 읽기 광장 "중지"가 도움이됩니다.

  • 프로젝트에서 소스를 가져옵니다 (예 : 폴더. ".../MyProject/src
  • 이제 프로젝트에 나타나고 중단 점을 설정할 수 있습니다.
  • 다시 디버거를 연결
  • 디버깅 할 프로세스를 선택했습니다.
  • 프로그램이 다음 중단 점에 도달하면 디버거가 중지되어야합니다.

[창]-> [디버깅]->로 이동하면 창이 불편합니다.

0
Cutton Eye

Www.zero-bugs.com/ Zero 디버거를 사용하십시오. gcc의 C++ 0x 지원이 필요합니다

0
siddhusingh