Jaki jest najlepszy debugger Linux C / C ++ (lub front-end do gdb), aby pomóc w nauce programowania? [Zamknięte]

106

Uczę nowicjuszy swego rodzaju „lekkiego” kursu programowania C ++ („lite” oznacza brak wskaźników, brak klas, po prostu zwykły stary C, plus referencje oraz ciągi i wektory STL). Studenci nie mają wcześniejszego doświadczenia w programowaniu, więc uważam, że użycie interaktywnego debuggera pomoże im zrozumieć przepływ programu, zmienne i rekurencję.

Kurs jest prowadzony w systemie Linux. Nauczenie ich używania gdb to po prostu przesada (nie będą używać ani rozumieć większości funkcji). Potrzebuję tylko czegoś prostego, ale łatwego w użyciu: aby zobaczyć, w której linii jest teraz program, co jest na stosie (zmienne lokalne, poprzednie wywołania itp.). Wyglądam podobnie do starego debuggera Turbo Pascala, Turbo C ++ Borlanda lub debuggera Visual Studio.

Dziękuję Ci,

omer.gimenez
źródło
4
Nie rozumiem uzasadnienia nauczania C ++ bez zajęć. Ale dostrzegam wysiłek ... Nauczania mam na myśli :-)
m-ric
1
C / C ++ nie brzmi dla mnie jak dobra opcja dla zupełnie początkujących ...
Jaime Hablutzel

Odpowiedzi:

36

ddd to graficzny interfejs użytkownika do gdb, który jest całkiem niezły. Jedną z wad jest klasyczny interfejs X, ale wydaje mi się, że jest dość intuicyjny.

jbleners
źródło
2
DDD to naprawdę świetna nakładka. Uczyłem C ++. Moi uczniowie nigdy nie mogli zrozumieć, jak używać gdb, ale po pokazaniu im krótkiej wycieczki po ddd (tylko podstawach i poleceniu kompilacji z -g) szybko stali się znacznie bardziej biegli w debugowaniu kodu i zrozumieniu, co się stało. Interfejs użytkownika może wyglądać na „stary i przestarzały”, ale po co naprawiać to, co oczywiście działa?
wasatz
43
ddd ma jeden z najbrzydszych interfejsów użytkownika, jakie kiedykolwiek widziałem imgur.com/UFTBjnW
ubershmekel
3
chociaż często używałem ddd w C, ma on dość słabe wsparcie dla wektorów i ogólnie rzecz biorąc std ::. Regularnie wymaga również podania zniekształconej nazwy czegoś, aby ustawić punkt przerwania. Nie polecałbym tego studentom wykonującym swoje pierwsze kroki w C ++.
PypeBros
1
DDD doskonale nadaje się do inspekcji struktur danych, ponieważ możesz je rozłożyć na dużym biurku i zobaczyć, jak wskazują na siebie i inne rzeczy. Ale prawdą jest, że jest to przydatne tylko w przypadku danych w stylu C (bez STL, wszędzie wskaźniki).
Roman Plášil
1
To ma jakieś 17 lat.
Rolf
25

Możesz spróbować użyć Insight, graficznego interfejsu dla gdb napisanego przez Red Hata. Jeśli używasz środowiska graficznego GNOME, możesz również wypróbować Nemiver .

Narek Babajanyan
źródło
4
Insight jest niesamowity, ale został usunięty z Debiana i nie mogę go zainstalować na moim Linuksie. Nie wiem, kto jest za to odpowiedzialny, ale wpisał się na moją listę śmiertelnych wrogów i jeśli go spotkam, spotka mój gniew! Ktokolwiek; wciąż jest sposób, aby to uruchomić, ale interfejs użytkownika jest trochę pokręcony: baptiste-wicht.com/2012/01/ ...
MasterMastic
@SamuelLampa apt-get install nemiver
Narek Babajanyan
@MasterMastic, został usunięty, ponieważ chyba nikt go nie konserwował. Nie martw się, możesz to przejąć!
andrewsh
16

Możesz sprawdzić Eclipse CDT. Dostarcza C / C ++ IDE, które działa na wielu platformach (np. Windows, Linux, Mac OS X itp.). Debugowanie za pomocą Eclipse CDT można porównać do korzystania z innych narzędzi, takich jak Visual Studio.

Możesz zapoznać się z samouczkiem dotyczącym debugowania Eclipse CDT, który zawiera również kilka zrzutów ekranu.

Jon Ball
źródło
14
Stary, uczniowie nauczą się Eclipse przez tygodnie.
MrFox
14
-1 za polecenie Eclipse
Celeritas
7
Nie będę -1 punktów, ale IDE jest do bani.
ovrwngtvity
2
A skoro tak bardzo narzekacie, co polecacie? code :: blocks, który nie był aktualizowany od 3 lat?
JohnJohn
3
Eclipse jest świetne dla Javy, ale jest całkiem złe dla C / C ++ ...
14

Qt Creator , oprócz innych dodatków, ma również dobrą integrację z debuggerem, dla CDB, GDB i debuggera Symnbian, na wszystkich obsługiwanych platformach. Nie musisz używać Qt, aby używać Qt Creator IDE, ani nie musisz używać QMake - ma również integrację z CMake, chociaż QMake jest bardzo łatwy w użyciu.

Możesz użyć Qt Creator jako IDE do nauki programowania, rozważ, że ma kilka dobrych funkcji:

  • Bardzo inteligentny i zaawansowany edytor C ++
  • Narzędzia do zarządzania projektami i kompilacjami
  • Integracja QMake i CMake
  • Zintegrowany, kontekstowy system pomocy
  • Doskonały debugger wizualny (CDB, GDB i Symbian)
  • Obsługuje GCC i VC ++
  • Narzędzia do szybkiej nawigacji po kodzie
  • Obsługuje systemy Windows, Linux i Mac OS X
Mircea Chirea
źródło
Czy obsługuje debugowanie małych programów, które nie mają plików projektu? Pamiętam, że używałem go w moim większym programie, ale pierwsza konfiguracja była dość bolesna, chociaż IDE jest bardzo dobre.
syockit
12

Być może jest to pośrednie w stosunku do gdb (ponieważ jest to IDE), ale moje zalecenia to KDevelop . Będąc dość rozpieszczonym debugerem Visual Studio (zawodowo w pracy od wielu lat), jak dotąd czułem się najwygodniej debugować w KDevelop (jako hobby w domu, bo nie było mnie stać na Visual Studio do użytku osobistego - aż do wydania Express Edition ). „Wygląda podobnie do” Visual Studio w porównaniu do innych IDE, z którymi eksperymentowałem (w tym Eclipse CDT), jeśli chodzi o debugowanie przejścia, wkroczenia itp. (Umieszczanie punktów przerwania jest trochę niewygodne, ponieważ nie Nie lubię zbyt często używać myszy podczas kodowania, ale nie jest to trudne).

HidekiAI
źródło