Manakah yang merupakan debugger Linux C / C ++ terbaik (atau front-end ke gdb) untuk membantu pengajaran pemrograman? [Tutup]

106

Saya mengajar semacam kursus pemrograman C ++ "lite" kepada pemula ("lite" yang berarti tidak ada petunjuk, tidak ada kelas, hanya C lama biasa, ditambah referensi dan string dan vektor STL). Siswa tidak memiliki pengalaman sebelumnya dalam pemrograman, jadi saya percaya bahwa menggunakan debugger interaktif akan membantu mereka memahami aliran program, variabel, dan rekursi.

Kursus ini diajarkan di Linux. Mengajar mereka untuk menggunakan gdb hanya berlebihan (mereka tidak akan menggunakan atau memahami sebagian besar fitur). Saya hanya perlu sesuatu yang sederhana tetapi mudah digunakan: untuk melihat di baris mana program itu sekarang, apa yang ada di tumpukan (variabel lokal, panggilan sebelumnya, dll.). Saya melihat sesuatu yang mirip dengan debugger Turbo Pascal atau Turbo C ++ Borland lama, atau debugger Visual Studio.

Terima kasih,

omer.gimenez
sumber
4
Saya tidak mengerti alasan mengajar C ++ tanpa kelas. Tapi saya mengakui usaha ... Mengajar maksud saya :-)
m-ric
1
C / C ++ tidak terdengar seperti pilihan yang baik untuk pemula total ...
Jaime Hablutzel

Jawaban:

36

ddd adalah grafis front-end untuk gdb yang cukup bagus. Salah satu sisi negatifnya adalah antarmuka X klasik, tetapi saya ingat itu cukup intuitif.

jbleners
sumber
2
DDD benar-benar frontend yang bagus. Saya dulu mengajar C ++. Siswa saya tidak pernah dapat memahami cara menggunakan gdb, tetapi setelah menunjukkan tur singkat ddd (hanya yang paling dasar, dan memberi tahu mereka untuk mengompilasi dengan -g) mereka dengan cepat menjadi jauh lebih ahli dalam men-debug kode mereka dan memahami apa yang terjadi. UI mungkin terlihat "tua dan kuno", tetapi mengapa memperbaiki apa yang jelas berfungsi?
wasatz
43
ddd memiliki salah satu UI paling jelek yang pernah saya lihat imgur.com/UFTBjnW
ubershmekel
3
meskipun saya telah menggunakan banyak ddd untuk C, itu memiliki dukungan yang cukup buruk untuk vektor dan std :: things secara umum. Ini secara teratur mengharuskan saya memberikan nama yang rusak dari sesuatu untuk mengatur breakpoint juga. Saya tidak akan merekomendasikan ini untuk siswa yang melakukan langkah C ++ pertama mereka.
PypeBros
1
DDD sangat bagus untuk memeriksa struktur data karena Anda dapat meletakkannya di meja besar dan melihatnya bagaimana mereka menunjuk satu sama lain dan semacamnya. Tapi memang benar bahwa ini hanya berguna untuk data C-style (tanpa STL, pointer di mana-mana).
Roman Plášil
1
Benda itu seperti berumur 17 tahun.
Rolf
25

Anda dapat mencoba menggunakan Insight, sebuah grafis front-end untuk gdb yang ditulis oleh Red Hat Atau jika Anda menggunakan lingkungan desktop GNOME, Anda juga dapat mencoba Nemiver .

Narek Babajanyan
sumber
4
Insight sangat luar biasa tetapi telah dihapus dari Debian dan saya tidak dapat menginstalnya di Linux saya .. Saya tidak tahu siapa yang bertanggung jawab, tetapi dia masuk ke daftar musuh bebuyutan saya dan jika saya bertemu dengannya dia akan menghadapi kemurkaan saya! Siapapun; masih ada cara untuk menjalankannya tetapi UI sedikit kacau: baptiste-wicht.com/2012/01/…
MasterMastic
@SamuelLampa apt-get install nemiver
Narek Babajanyan
@MasterMastic, itu dihapus karena tidak ada yang memeliharanya, saya kira. Jangan khawatir, Anda bisa mengambil alih!
andrewsh
16

Anda mungkin ingin melihat Eclipse CDT. Ini menyediakan C / C ++ IDE yang berjalan pada berbagai platform (misalnya Windows, Linux, Mac OS X, dll.). Debugging dengan Eclipse CDT sebanding dengan menggunakan alat lain seperti Visual Studio.

Anda dapat melihat tutorial Eclipse CDT Debug yang juga menyertakan sejumlah tangkapan layar.

Jon Ball
sumber
14
Teman, siswa akan membutuhkan waktu berminggu-minggu untuk mempelajari Eclipse.
MrFox
14
-1 untuk merekomendasikan Eclipse
Celeritas
7
Saya tidak akan -1 poin tetapi IDE menyebalkan.
ovrwngtvity
2
Dan karena kalian banyak mengeluh, apa yang kalian rekomendasikan? kode :: blok yang belum diperbarui selama 3 tahun sekarang?
JohnJohn
3
Eclipse sangat bagus untuk Java, tetapi sangat buruk untuk C / C ++ ...
14

Qt Creator , selain dari barang lainnya, juga memiliki integrasi debugger yang baik, untuk CDB, GDB dan debugger Symnbian, pada semua platform yang didukung. Anda tidak perlu menggunakan Qt untuk menggunakan Qt Creator IDE, Anda juga tidak perlu menggunakan QMake - QMake juga memiliki integrasi CMake, meskipun QMake sangat mudah digunakan.

Anda mungkin ingin menggunakan Qt Creator sebagai IDE untuk mengajar pemrograman, karena ia memiliki beberapa fitur bagus:

  • Editor C ++ yang sangat cerdas dan canggih
  • Memproyeksikan dan membangun alat manajemen
  • Integrasi QMake dan CMake
  • Sistem bantuan terintegrasi dan sensitif konteks
  • Debugger visual yang sangat baik (CDB, GDB dan Symbian)
  • Mendukung GCC dan VC ++
  • Alat navigasi kode cepat
  • Mendukung Windows, Linux dan Mac OS X
Mircea Chirea
sumber
Apakah itu mendukung debugging program kecil yang tidak memiliki file proyek? Saya ingat menggunakannya untuk program saya yang lebih besar, tetapi penyiapan pertama cukup menyakitkan, meskipun IDE-nya sangat bagus.
syockit
12

Mungkin ini tidak langsung ke gdb (karena ini adalah IDE), tetapi rekomendasi saya adalah KDevelop . Menjadi cukup dimanjakan dengan debugger Visual Studio (secara profesional bekerja selama bertahun-tahun), sejauh ini saya merasakan debugging paling nyaman di KDevelop (sebagai hobi di rumah, karena saya tidak mampu membeli Visual Studio untuk penggunaan pribadi - sampai Express Edition keluar ). Itu "terlihat mirip dengan" Visual Studio dibandingkan dengan IDE lain yang pernah saya coba (termasuk Eclipse CDT) ketika datang ke debugging step-through, step-in, dll (menempatkan break point agak canggung karena saya tidak ' t suka menggunakan mouse terlalu banyak saat coding, tapi itu tidak sulit).

HidekiAI
sumber