W skrócie: Czy ktoś wie o graficznym interfejsie użytkownika dla gdb, który zapewnia go na równi z zestawem funkcji dostępnym w najnowszej wersji Visual C ++ lub blisko niego?
Szczegółowo: Jako ktoś, kto spędził dużo czasu na programowaniu w systemie Windows, jednym z większych potknięć, które znalazłem, kiedy tylko muszę kodować C ++ w Linuksie, jest to, że debugowanie czegokolwiek za pomocą wiersza poleceń gdb zajmuje mi kilka razy dłużej niż w Visual Studio i wydaje się, że nie poprawia się wraz z praktyką. Niektóre rzeczy są po prostu łatwiejsze lub szybsze do wyrażenia graficznego.
W szczególności szukam GUI, które:
- Obsługuje wszystkie podstawowe elementy, takie jak przechodzenie i kodowanie, 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 potrafi inteligentnie przechodzić przez szablony kodu i struktury danych, wyświetlając odpowiednie informacje, takie jak typy parametrów
- Może obsługiwać aplikacje wątkowe i przełączać się między różnymi wątkami, aby przejść lub wyświetlić stan
- Potrafi obsłużyć dołączanie do już rozpoczętego procesu lub odczyt zrzutu pamięci, oprócz uruchamiania programu w gdb
Jeśli taki program nie istnieje, chciałbym usłyszeć o doświadczeniach ludzi z programami, które spełniają przynajmniej niektóre punkty kuli. Czy ktokolwiek ma jakieś propozycje?
Edycja:
Wymienienie możliwości jest świetne, a ja wezmę to, co mogę uzyskać, ale byłoby jeszcze bardziej pomocne, gdybyś mógł uwzględnić w swoich odpowiedziach:
(a) Czy faktycznie użyłeś tego GUI, a jeśli tak, to , jakie pozytywne / negatywne opinie na ten temat masz.
(b) Jeśli wiesz, które z wyżej wymienionych funkcji są / nie są obsługiwane
Listy są łatwe do zdobycia, strony takie jak ta są świetne, ponieważ możesz poznać osobiste doświadczenia użytkowników z aplikacjami.
Odpowiedzi:
Nie znajdziesz niczego, co nakładałoby się na GDB, które konkurowałoby z surową mocą debuggera Visual Studio. Jest po prostu zbyt potężny i po prostu zbyt dobrze zintegrowany z IDE.
Alternatywą dla systemu Linux jest wypróbowanie DDD, jeśli wolisz darmowe oprogramowanie.
źródło
Eclipse CDT zapewni wrażenia porównywalne z używaniem Visual Studio. Używam Eclipse CDT na co dzień do pisania kodu oraz debugowania lokalnych i zdalnych procesów.
Jeśli nie jesteś zaznajomiony z używaniem IDE opartego na Eclipse, GUI trochę się przyzwyczai. Jednak po zrozumieniu pomysłów GUI, które są unikalne dla Eclipse (np. Perspektywy), korzystanie z narzędzia staje się przyjemnym doświadczeniem.
Narzędzie CDT zapewnia porządny indeksator 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 odczytu zrzutu podstawowego (może to obsługiwać, ale nigdy nie próbowałem użyć tej funkcji). Ponadto moje doświadczenie z debugowaniem kodu przy użyciu szablonów jest ograniczone, więc nie jestem pewien, jakie doświadczenie zapewni CDT w tym zakresie.
Aby uzyskać więcej informacji na temat debugowania przy użyciu Eclipse CDT, możesz sprawdzić następujące przewodniki:
źródło
gdb -tui działa dobrze, jeśli chcesz coś z GUI, ale nadal oparte na znakach.
źródło
Sprawdź debugger Nemiver C / C ++ . Jest łatwy do zainstalowania w Ubuntu (narzędzia deweloperskie / debugowanie).
Aktualizacja: nowy link.
źródło
Qt Creator wydaje się dobrą rzeczą. Kolega pokazał mi jeden ze sposobów skonfigurowania go do debugowania:
Może to wydawać się trochę pracochłonne przy debugowaniu aplikacji, którą już skompilowałem, ale warto. Debuger pokazuje wątki, stosy i zmienne lokalne w podobny sposób jak Visual Studio, a nawet używa wielu takich samych skrótów klawiaturowych. Wygląda na to, że dobrze obsługuje szablony, przynajmniej std :: string i std :: map. Dołączanie do istniejących procesów i zrzutów pamięci wydaje się być obsługiwane, chociaż jeszcze tego nie testowałem.
Pamiętaj, że korzystałem z niego przez mniej niż godzinę, ale jestem pod wrażeniem.
źródło
Nienawidzę idei rozwoju Windows, ale debugger VC ++ jest jednym z najlepszych, jakie widziałem. Nie znalazłem interfejsu GUI zbliżonego do VC.
GDB jest niesamowity, gdy naprawdę się przyzwyczaisz. Użyj go wystarczająco mocno, a staniesz się bardzo biegły. Mogę śmigać po programie, wykonując wszystkie wymienione czynności bez większego wysiłku. Zajęło mi to około miesiąca cierpienia z powodu łącza SSH do zdalnego serwera, zanim byłem biegły. Nigdy bym nie wrócił.
DDD jest naprawdę potężny, ale był dość błędny. Znalazłem, że zamarzał dość często, gdy otrzymywał wiadomości z GDB, że nie grokował. To dobrze, ponieważ ma okno interfejsu gdb, dzięki czemu można zobaczyć, co się dzieje, a także bezpośrednio wchodzić w interakcje z gdb. DDD nie może być używany w zdalnej sesji X w moim środowisku (prawdziwy problem, ponieważ siedzę przy cienkim kliencie, gdy robię programowanie w Uniksie) z jakiegoś powodu, więc jest dla mnie.
KDevelop postępował zgodnie z typowym stylem KDE i odsłonił WSZYSTKO dla użytkownika. Nigdy też nie miałem szczęścia debugowania programów innych niż KDevelop w KDevelop.
Gnat Programming Studio (GPS) jest właściwie całkiem dobrym interfejsem do GDB. Nie tylko zarządza projektami Ada, więc warto wypróbować, jeśli potrzebujesz debuggera.
Możesz użyć Eclipse, ale jest dość ciężki, a wielu doświadczonych ludzi z Uniksem, z którymi współpracowałem (włącznie ze mną), nie dba o jego interfejs, który nie tylko STFU zejdzie ci z drogi. Zaćmienie wydaje się również zajmować dużo miejsca i biegać jak pies.
źródło
Używam cgdb, prosty i użyteczny
źródło
Często używam DDD i jest dość potężny, kiedy nauczysz się go używać. Powiedziałbym, że nie używaj go przez X w sieci WAN, ponieważ wydaje się, że robi on wiele niepotrzebnych aktualizacji ekranu.
Ponadto, jeśli nie jesteś związany z GDB i nie masz nic przeciwko zebraniu trochę gotówki, wtedy wypróbuję TotalView. Ma nieco stromą krzywą uczenia się (może zdecydowanie być bardziej intuicyjna), ale jest to najlepszy debuger C ++, jakiego kiedykolwiek używałem na dowolnej platformie, i można go rozszerzyć o introspekcję twoich obiektów w niestandardowy sposób (umożliwiając w ten sposób przeglądanie Lista STL jako rzeczywista lista obiektów, a nie grupa mylących wewnętrznych elementów danych itp.)
źródło
Sprawdź projekt Eclipse CDT. Jest to wtyczka do Eclipse ukierunkowana na rozwój C / C ++ i zawiera dość bogatą perspektywę debugowania (która za kulisami używa GDB). Jest dostępny na wielu różnych platformach.
źródło
Podobnie wygodny jak frontend gdb eclipse jest frontend emacsa, ściśle powiązany z IDE emacsa. Jeśli już pracujesz z emacsem, spodoba ci się:
GDB Emacs Frontend
źródło
DDD to nakładka GNU dla gdb: http://www.gnu.org/software/ddd/
źródło
Użyłem KDbg (działa tylko w KDE).
źródło
Wypróbowałem kilka różnych GUI dla GDB i odkryłem, że DDD jest lepszym z nich. I chociaż nie mogę komentować innych ofert innych niż gdb dla systemu Linux, użyłem wielu innych debuggerów na innych platformach.
gdb robi większość rzeczy, które masz na liście życzeń. DDD daje im ładniejszy front. Na przykład przełączanie wątków jest prostsze. Ustawianie punktów przerwania jest tak proste, jak można się spodziewać.
Otrzymasz także okno cli na wypadek, gdybyś chciał zrobić coś niejasnego.
Jedną z cech DDD, która wyróżnia się spośród wszystkich innych debuggerów, których użyłem, jest „wykresy” danych. Pozwala to wyświetlać i rozmieszczać struktury, obiekty i pamięć jako przeciągalne pola. Dwukrotne kliknięcie wskaźnika otworzy dereferencyjne dane z wizualnymi linkami z powrotem do rodzica.
źródło
Qt Creator-on-Linux z pewnością jest obecnie na równi z Visual Studio-on-Windows dla C ++. Powiedziałbym nawet lepiej po stronie debuggera.
źródło
Na tej liście brakuje jednego IDE, który jest bardzo wydajny (korzystałem z niego w wielu projektach C / C ++ bez żadnych problemów): Netbeans .
źródło
To, co można przejść, będzie w dużym stopniu ograniczone przez informacje debugowania generowane przez g ++. Emacs zapewnia interfejs do gdb, który pozwala kontrolować go za pomocą pasków narzędzi / menu i wyświetlać dane w osobnych oknach, a także bezpośrednio wpisywać polecenia gdb. CDT Eclipse zapewnia podobne narzędzia. Słyszałem o Anjucie i Code :: Blocks, ale nigdy ich nie użyłem.
źródło
Jako ktoś zaznajomiony z Visual Studio, widziałem kilka IDE o otwartym kodzie źródłowym, aby go zastąpić, a KDevelop jest najbliższym IMO do bycia czymś, co osoba Visual C ++ może po prostu usiąść i zacząć używać. Kiedy uruchamiasz projekt w trybie debugowania, używa gdb, ale kdevelop praktycznie obsługuje całą sprawę, więc nie musisz wiedzieć, że to gdb; jesteś tylko krokiem lub przypisujesz zegarki do zmiennych.
Niestety, nadal nie jest tak dobry jak Debugger Visual Studio.
źródło
Nie wspominasz, czy używasz systemu Windows, czy UNIX.
W systemach UNIX KDevelop jest dobry, ale korzystam z KDbg, ponieważ jest łatwy w użyciu i działa również z aplikacjami, które nie zostały opracowane w KDevelop.
Zaćmienie 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 ładnie wstępnie skonfigurowane pod kątem minimalnego bólu. To najlepsza rzecz, jaką znalazłem do tworzenia kodu GNU w systemie Windows.
Użyłem wszystkich tych debuggerów i żaden z nich nie jest tak dobry jak MS Dev Studio. Eclipse / Wascana jest prawdopodobnie najbliższy, ale ma ograniczenia, takie jak nie można wejść do bibliotek DLL i nie sprawdza się tak dobrze przy badaniu zmiennych.
źródło
Czy kiedykolwiek spojrzałeś na debugger DS-5 ?
Istnieje wersja płatna, która zawiera wiele przydatnych funkcji, ale możesz także używać wersji Community Edition za darmo (co jest również bardzo przydatne, szczególnie w przypadku systemów osadzonych).
Mam pozytywne doświadczenia z tym narzędziem podczas debugowania aplikacji na Androida na prawdziwym urządzeniu za pomocą Eclipse.
źródło
Kod: Bloki C ++ IDE ma graficzny opakowania, z kilkoma z cech chcesz, ale nic podobnego mocy VS.
źródło
VisualGDB to kolejna wtyczka Visual Studio do tworzenia i debugowania aplikacji na platformach Linux i Embedded.
źródło
KDevelop działa całkiem dobrze.
źródło
Czy próbowałeś gdb -w z cygwin gdb. Zakłada się, że ma interfejs systemu Windows, który działa dość dobrze.
Jedyny problem, jaki znalazłem, to to, że na moim obecnym komputerze nie działało w ten sposób, dopóki nie zainstalowałem ddd. Podejrzewam, że wymaga tcltk, który został zainstalowany podczas instalacji ddd.
źródło
Najnowsza wersja Geany obsługuje to (tylko w systemie Linux)
źródło
Jeśli szukasz gdb w Visual Studio, sprawdź WinGDB .
źródło
W ciągu ostatnich 15 miesięcy korzystam z wglądu (dostarczonego z FC6). To nie jest świetne, jest napisane w Tcl / Tk, ale jest proste i przydatne. DDD ma podobną jakość / użyteczność, ale jest nieco trudniejszy w użyciu (różne poprawki i pominięcia GUI). Próbowałem także zintegrować gdb z moim IDE, SlickEdit. Działało OK (grałem z nim około 4 godzin), ale nie podobały mi się przełączniki kontekstu GUI. Lubię, aby moje IDE pozostało niezmienione podczas debugowania; w systemie Windows używam SlickEdit dla IDE i Visual Studio Debugger do debugowania. Tak więc z 3: Insight, DDD i SlickEdit, Insight jest moim pierwszym wyborem, używam go> 95% czasu, a wiersze poleceń gdb i DDD stanowią pozostałe 5%. Jeśli zdobędę szansę, w pewnym momencie dokonam ewaluacji Eclipse, mój komputer nie wydaje się mieć wystarczającej ilości pamięci RAM (tylko 1 GB), aby uruchomić Eclipse w miarę dobrze.
Słyszałem też wiele pochwał dla TotalView, w tym pierwszej ręki podczas rozmowy o pracę. Dostałem ewaluację dla naszej firmy pod koniec 2008 roku, ale ostatecznie nie kontynuowaliśmy, ponieważ gdb było wystarczająco dobre dla naszych potrzeb; i jest darmowy i wszechobecny.
źródło
Użyj www.zero-bugs.com/ Zero debugger, wymaga obsługi C ++ 0x z gcc
źródło
Szukałem debugera, aby przejść przez uruchomiony program. Powiedz: Dołącz. Program został zbudowany z zaćmieniem, ale może z powodu pewnych wielowątkowych przeszkód, żadnych plików źródłowych. Cokolwiek.
Z NetBeans bardzo mi się podobało.
Teraz okno znika i nic nie widać. oderwać się od procesu. Pomaga „Kwadrat” odczytu.
Przechodzenie do [okno] -> [Debugowanie] -> Czy twoje okno będzie wygodne.
źródło