Czy jest GUI C++ gdb dla Linuksa? [zamknięte]

Krótko: czy ktoś zna GUI dla gdb, który przynosi go na par lub blisko zestawu funkcji, które można uzyskać w nowszej wersji Visual C++?

W szczegółach: jako ktoś, kto spędził dużo czasu na programowaniu w systemie Windows, jedną z większych przeszkód, które znalazłem, gdy muszę kodować C++ w Linuksie, jest to, że debugowanie czegokolwiek za pomocą gdb z wiersza poleceń zajmuje mi kilka razy dłużej niż w Visual Studio i nie wydaje się być coraz lepsze z praktyką. Niektóre rzeczy są po prostu łatwiejsze lub szybsze do wyrażenia graficznie.

Konkretnie Szukam GUI, które:

  • obsługuje wszystkie podstawowe funkcje, takie jak przechodzenie do kodu, obserwowanie zmiennych i punktów przerwania
  • rozumie i może wyświetlać zawartość złożonych i zagnieżdżonych typów danych C++
  • nie myli się i najlepiej może inteligentnie przechodzić przez szablony kodu i struktury danych, wyświetlając istotne informacje, takie jak typy parametrów
  • Can obsługa aplikacji gwintowanych i przełączanie między różnymi gwintami, aby przejść lub wyświetlić stan
  • Może obsługiwać dołączanie do już rozpoczętego procesu lub odczytywanie zrzutu pamięci, oprócz uruchamiania programu w gdb

Jeśli taki program nie istnieje, to chciałbym usłyszeć o doświadczeniach ludzi z programami, które spełniają przynajmniej niektóre z punktorów. Czy ktoś ma jakieś zalecenia?

Edit:
Notowanie na możliwości są świetne i wezmę to, co mogę dostać, ale byłoby jeszcze bardziej pomocne, gdybyś mógł uwzględnić w swoich odpowiedziach: {]} (a) czy faktycznie używałeś tego GUI, a jeśli tak, to jakie masz pozytywne/negatywne opinie na jego temat.
(b) jeśli wiesz, które z wyżej wymienionych funkcji są/nie są obsługiwane

Listy są łatwe do zdobycia, witryny takie jak ta są świetne, ponieważ można uzyskać wyobrażenie o osobistych doświadczeniach ludzi z aplikacjami.

28 answers

Nie znajdziesz niczego nakładającego GDB, które może konkurować z surową mocą debuggera Visual Studio. Jest po prostu zbyt potężny i jest zbyt dobrze zintegrowany wewnątrz IDE.

Dla alternatywy dla Linuksa, spróbuj DDD, jeśli lubisz wolne oprogramowanie.

 54
Author: Vicent Marti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 15:20:00

Eclipse CDT zapewni doświadczenie porównywalne do korzystania z Visual Studio. Używam Eclipse CDT na co dzień do pisania kodu i debugowania lokalnych i zdalnych procesów.

Jeśli nie jesteś zaznajomiony z używaniem IDE opartego na Eclipse, GUI zajmie trochę przyzwyczajenie się do. Jednak po zrozumieniu pomysłów GUI, które są unikalne dla Eclipse (np. perspektywa), korzystanie z narzędzia staje się miłym doświadczeniem.

Oprzyrządowanie CDT zapewnia przyzwoity indekser C / C++, który pozwala szybko znaleźć odniesienia do metod w bazie kodu. Zapewnia również ładne narzędzie do rozszerzania makr i ograniczone wsparcie refaktoryzacji.

Jeśli chodzi o obsługę debugowania, CDT jest w stanie zrobić wszystko na liście z wyjątkiem czytania zrzutu pamięci (może to wspierać, ale nigdy nie próbowałem użyć tej funkcji). Ponadto moje doświadczenie z debugowaniem kodu za pomocą szablonów jest ograniczone, więc nie jestem pewien, jakie doświadczenie CDT zapewni w tym szacunek.

Aby uzyskać więcej informacji na temat debugowania przy użyciu Eclipse CDT, możesz zajrzeć do tych przewodników:

 83
Author: Jon Ball,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 02:36:01

Gdb-tui działa dobrze, jeśli chcesz coś GUI-owskiego, ale nadal oparte na znakach.

 75
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 02:08:37

Sprawdź Nemiver Debugger C/C++ . Jest łatwy do zainstalowania w Ubuntu (narzędzia programistyczne/debugowanie).

Aktualizacja: Nowy link.

 44
Author: Sergey Shandar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-15 00:41:15

Brzydzę się ideą rozwoju Windows, ale debugger VC++ należy do najlepszych, jakie widziałem. Nie znalazłem interfejsu graficznego, który zbliżyłby się do VC.

GDB jest super, gdy się naprawdę przyzwyczaisz. Użyj go wystarczająco w gniewie, a staniesz się bardzo biegły. Mogę krążyć po programie robiąc wszystkie rzeczy wymienione bez większego wysiłku już. Zajęło mi to około miesiąca cierpienia z powodu łącza SSH do zdalnego serwera, zanim byłem biegły. I ' d never go back chociaż.

DDD jest naprawdę potężny, ale to było dość buggy. Zauważyłem, że zamarzał dość często, gdy dostał wiadomości z GDB, że nie grok. Jest to dobre, ponieważ ma okno interfejsu gdb, dzięki czemu można zobaczyć, co się dzieje, a także bezpośrednio współdziałać z gdb. DDD nie może być używany na zdalnej sesji X w moim środowisku (prawdziwy problem, ponieważ siedzę na cienkim kliencie, kiedy robię Unix dev) z jakiegoś powodu, więc to jest dla mnie.

KDevelop podążał za typowym stylem KDE i ujawnił Wszystko dla użytkownika. Nigdy też nie miałem szczęścia debugować programów nie KDevelop w Kdevelopie.

Gnat Programming Studio (GPS) jest właściwie całkiem dobrym front-endem dla GDB. Nie tylko zarządza projektami Ada, więc warto wypróbować, jeśli potrzebujesz debuggera.

Mógłbyś użyć Eclipse, ale jest to dość ciężka waga i wielu doświadczonych ludzi z Uniksem, z którymi pracowałem (w tym ja), nie dba zbytnio o jego interfejs, który nie tylko STFU i zejść z drogi. Zaćmienie również wydaje się zajmować dużo miejsca i biegać jak pies.

 28
Author: Adam Hawes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-02 01:29:55

Qt Creator wydaje się być dobrym materiałem. Kolega pokazał mi jeden sposób skonfigurowania go do debugowania:

  • Utwórz nowy projekt, "Import projektu opartego na plikach Makefile".
  • wskaż go do folderu głównego projektu(indeksuje źródła pod nim i jest imponująco szybki).
  • Przejdź do Ustawienia projektu i Dodaj konfigurację uruchomienia, a następnie określ plik wykonywalny, który chcesz debugować, i jego argumenty.
  • Qt Creator wydaje się nalegać na zbudowanie twojego projektu przed jego debugowaniem. Jeśli nie chcesz tego lub nie używasz make, możesz nadpisać polecenie make. Zmieniłem na "true". :)

To może wydawać się trochę dużo pracy przy debugowaniu aplikacji, którą już skompilowałem, ale warto. Debugger pokazuje wątki, stosy i zmienne lokalne w podobny sposób jak w Visual Studio, a nawet używa wielu z tych samych skrótów klawiaturowych. Wydaje się, że dobrze radzi sobie z szablonami, przynajmniej std::string i std:: map. Dołączanie do istniejących procesów i zrzutów rdzenia wydaje się być obsługiwane, choć nie testowałem go jeszcze.

Pamiętaj, że używałem go już niecałą godzinę, ale jak na razie jestem pod wrażeniem.

 28
Author: Soulman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-24 13:40:34

Używam cgdb, prosty i użyteczny

 24
Author: cod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-15 11:54:53

Często używam DDD i jest dość potężny, gdy nauczysz się go używać. Jedną rzeczą, którą powiedziałbym, to nie używaj go przez X przez WAN, ponieważ wydaje się, że robi wiele niepotrzebnych aktualizacji ekranu.

Ponadto, jeśli nie jesteś związany z GDB i nie masz nic przeciwko kupieniu trochę gotówki, to wypróbowałbym TotalView. Ma trochę stromą krzywą uczenia się (zdecydowanie może być bardziej intuicyjny), ale jest to najlepszy debugger C++, jakiego kiedykolwiek używałem na każdej platformie i może być rozszerzony, aby introspekcjować swoje obiekty w sposób niestandardowy (dzięki czemu można przeglądać listę STL jako rzeczywistą listę obiektów, a nie kilka mylących wewnętrznych elementów danych, itp.)

 16
Author: Nick Bastin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 02:10:07

Zobacz projekt Eclipse CDT. Jest to wtyczka dla Eclipse nastawiona na rozwój C / C++ i zawiera dość bogatą w funkcje perspektywę debugowania (która za kulisami używa GDB). Jest dostępny na wielu różnych platformach.

 8
Author: user14636,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 01:48:54

Podobny komfort do nakładki eclipse gdb jest nakładka emacs, ściśle powiązana z Emacs IDE. Jeśli już pracujesz z emacsem, spodoba ci się:

GDB Emacs Frontend

 7
Author: Johannes Schaub - litb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:41

DDD jest interfejsem GNU dla gdb: http://www.gnu.org/software/ddd/

 5
Author: mmattax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 01:50:48

Qt Creator-on-Linux jest obecnie na równi z Visual Studio-on-Windows dla C++. Powiedziałbym nawet lepiej po stronie debuggera.

 5
Author: Marv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-20 15:47:24

Na tej liście brakuje jednego IDE, które jest bardzo wydajne (używałem go w wielu projektach C / C++ bez żadnych problemów): Netbeans.

 5
Author: Florent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-13 00:50:01

Wypróbowałem kilka różnych GUI dla gdb i stwierdziłem, że DDD jest lepszym z nich. I chociaż nie mogę komentować innych, nie-gdb ofert dla Linuksa użyłem wielu innych debugerów na innych platformach.

Gdb robi większość rzeczy, które masz na liście życzeń. DDD stawia na nich ładniejszy front. Na przykład przełączanie wątków jest prostsze. Ustawianie punktów przerwania jest tak proste, jak można się spodziewać.

Dostajesz również okno cli w przypadku, gdy jest coś niejasne, że chcesz zrobić.

Jedyną cechą DDD, która wyróżnia się na tle innych debugerów, których używałem, jest "grafowanie" danych. Pozwala to na wyświetlanie i układanie struktur, obiektów i pamięci w postaci przeciągalnych pudełek. Podwójne kliknięcie wskaźnika spowoduje otwarcie dereferowanych danych z wizualnymi linkami z powrotem do rodzica.

 4
Author: Andrew Edgecombe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 12:10:04

Użyłem KDbg (działa tylko pod KDE).

 4
Author: codeguru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-25 19:01:28

To, przez co można przejść, będzie w dużym stopniu ograniczone przez informacje debugujące generowane przez g++. Emacs zapewnia interfejs do gdb, który pozwala sterować nim za pomocą pasków narzędzi/menu i wyświetlać dane w oddzielnych oknach, a także bezpośrednio wpisywać polecenia gdb. CDT Eclipse dostarcza podobnych narzędzi. Słyszałem o blokach Anjuta i Code::, ale nigdy ich nie używałem.

 3
Author: Allen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 01:47:34

Jako ktoś zaznajomiony z Visual Studio, spojrzałem na kilka open source IDE, aby go zastąpić, a KDevelop jest najbliżej IMO do czegoś, co osoba Visual C++ może po prostu usiąść i zacząć używać. Kiedy uruchamiasz projekt w trybie debugowania, używa on gdb, ale kdevelop obsługuje wszystko tak, że nie musisz wiedzieć, że to gdb; jesteś tylko pojedynczym krokiem lub przypisaniem zegarka do zmiennych.

Nadal nie jest tak dobry jak Debugger Visual Studio, niestety.

 3
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 02:16:58

Nie wspominasz, czy używasz Windows czy UNIX.

W systemach uniksowych, KDevelopjest dobry, ale używam KDbg, ponieważ jest łatwy w użyciu i będzie działał również z aplikacjami Nie opracowanymi w Kdevelopie.

Eclipse jest dobre na obu platformach.

W systemie Windows istnieje świetny pakiet o nazwie Wascana Desktop Developer , który jest Eclipse CDT i MinGW wszystkie spakowane i wstępnie skonfigurowane ładnie dla minimum bólu. Its the best thing I ' ve znalezione dla tworzenia kodu GNU w systemie Windows.

Użyłem wszystkich tych debugerów i żaden z nich nie jest tak dobry jak MS Dev Studio. Eclipse / Wascana jest prawdopodobnie najbliżej, ale ma ograniczenia, takie jak nie można wejść do bibliotek DLL i nie robi tak dobrej pracy w badaniu zmiennych.

 3
Author: Adam Pierce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-02 01:01:44

Czy kiedykolwiek przyjrzałeś się debugerowi DS-5 ?

Istnieje płatna wersja, która zawiera wiele przydatnych funkcji, ale można również korzystać z Community Edition za darmo (co jest również bardzo przydatne zwłaszcza dla systemów wbudowanych).

Mam pozytywne doświadczenia z tym narzędziem podczas debugowania aplikacji Android na prawdziwym urządzeniu za pomocą eclipse.

 3
Author: Viktor Malyi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-25 14:01:15

The Code: Blocks C++ IDE ma graficzny wrapper, z kilkoma funkcjami, które chcesz, ale nie ma to jak moc VS.

 2
Author: crobar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-24 11:15:01

VisualGDB to kolejna Wtyczka Visual Studio do tworzenia i debugowania aplikacji na platformach Linux i embedded.

 2
Author: Sergey Zhukov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-27 23:08:52

KDevelop działa całkiem dobrze.

 1
Author: Harold Ekstrom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 01:53:34

Czy próbowałeś gdb - w z cygwin gdb. Jest supposed mieć interfejs windows, który działa dość dobrze.

Jedyny problem, jaki znalazłem, to to, że na moim obecnym komputerze nie działał w ten sposób, dopóki nie zainstalowałem ddd. Podejrzewam, że wymaga tcltk, który został zainstalowany, gdy zainstalowałem ddd.

 1
Author: BubbaT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-02 01:52:23

Najnowsza wersja Geany obsługuje go (tylko na Linuksie)

 0
Author: Milan Babuškov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 02:08:21

Jeśli szukasz gdb pod Visual Studio, sprawdź WinGDB .

 0
Author: Dominic.wig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-03 20:35:23

W ciągu ostatnich 15 miesięcy używam insight (przyszedł z FC6). Nie jest świetny, jest napisany w Tcl/Tk, ale jest prosty i przydatny. DDD jest podobnej jakości / użyteczności, ale nieco trudniejsze w użyciu (różne Gotcha GUI i pominięcia). Próbowałem również zintegrować gdb z moim IDE, SlickEdit. Działało OK( grałem z nim jakieś 4 godziny), ale nie podobały mi się przełączniki kontekstowe GUI. Lubię, gdy moje IDE pozostaje niezmienione podczas debugowania; w systemie Windows używam SlickEdit do debugowania IDE i Visual Studio do debugowania. Tak więc z 3: Insight, DDD i SlickEdit, Insight jest moim pierwszym wyborem, używam go >95% czasu, gdb i DDD z linii poleceń tworzą pozostałe 5%. Jeśli będę miał okazję, będę eval Eclipse w pewnym momencie, mój komputer pracy nie wydaje się mieć wystarczająco dużo pamięci RAM (1GB tylko), aby uruchomić Eclipse dość dobrze.

Słyszałem również wiele pochwał dla TotalView, w tym 1st hand podczas rozmowy kwalifikacyjnej. Otrzymałem ocenę naszej firmy pod koniec 2008 roku, ale ostatecznie nie kontynuowaliśmy jako gdb był wystarczająco dobry dla naszych potrzeb; i jest wolny i wszechobecny.

 0
Author: Radim Cernej,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-03 21:02:59

Użycie www.zero-bugs.com/ Zero debugger, wymaga obsługi C++0x od gcc

 0
Author: siddhusingh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-16 07:21:52

Szukałem debugera do przejścia przez uruchomiony program. Powiedz: Załącz. Program został zbudowany z eclipse, ale z powodu może kilku wielowątkowych przeszkód, brak plików źródłowych gdzie fond. Co tam.

Mam bardzo compfortable z NetBeans.

  • [debug] z menu - > Załącz Deuggera...
  • ponieważ proces wybrał ten do debugowania
  • jako projekt [nowy projekt]

Teraz okno zniknie i nic nie widzisz. odłącz się od procesu. The Read Kwadrat "Stop" pomaga.

  • Importuj źródło z projektu jako np. folder. ".../MyProject / src
  • teraz pojawia się w Twoim projekcie i możesz ustawić punkty przerwania.
  • again ttach debugger
  • wybrał proces do debugowania.
  • debugger powinien się zatrzymać, jeśli program osiągnie następny punkt przerwania.

Przejdź do [window] - > [Debugging] - > Czy Twoje okno będzie kompfortable.

 0
Author: Cutton Eye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-04 19:41:26