Secara singkat: Apakah ada yang tahu tentang GUI untuk gdb yang membuatnya setara atau dekat dengan fitur yang Anda dapatkan di versi terbaru dari Visual C ++?
Secara terperinci: Sebagai seseorang yang telah menghabiskan banyak waktu pemrograman di Windows, salah satu kendala terbesar yang saya temukan setiap kali saya harus kode C ++ di Linux adalah bahwa men-debug apa pun menggunakan commandline gdb membutuhkan waktu beberapa kali lebih lama daripada di Visual Studio, dan sepertinya tidak menjadi lebih baik dengan latihan. Beberapa hal hanya lebih mudah atau lebih cepat untuk diekspresikan secara grafis.
Secara khusus, saya mencari GUI yang:
- Menangani semua dasar-dasar seperti melangkah masuk & ke dalam kode, menonton variabel dan breakpoint
- Memahami dan dapat menampilkan konten tipe data C ++ yang kompleks & bersarang
- Tidak menjadi bingung oleh dan lebih disukai dapat secara cerdas melangkah melalui kode templated dan struktur data sambil menampilkan informasi yang relevan seperti jenis parameter
- Dapat menangani aplikasi berulir dan beralih di antara berbagai utas untuk melangkah atau melihat status
- Dapat menangani melampirkan ke proses yang sudah dimulai atau membaca dump inti, selain memulai program di gdb
Jika program semacam itu tidak ada, maka saya ingin mendengar tentang pengalaman orang-orang dengan program yang memenuhi setidaknya beberapa poin. Adakah yang punya rekomendasi?
Sunting:
Mendaftar kemungkinan sangat bagus, dan saya akan mengambil apa yang bisa saya dapatkan, tetapi akan lebih membantu jika Anda dapat memasukkan dalam tanggapan Anda:
(a) Apakah Anda benar-benar menggunakan GUI ini dan jika demikian, , apa umpan balik positif / negatif yang Anda miliki tentang hal itu.
(B) Jika Anda tahu, mana dari fitur yang disebutkan di atas adalah / tidak didukung
Daftarnya mudah didapat, situs-situs seperti ini hebat karena Anda bisa mendapatkan gambaran tentang pengalaman pribadi orang-orang dengan aplikasi.
Jawaban:
Anda tidak akan menemukan apa pun overlay GDB yang dapat bersaing dengan kekuatan mentah dari debugger Visual Studio. Itu terlalu kuat, dan terlalu terintegrasi dengan baik di dalam IDE.
Untuk alternatif Linux, coba DDD jika perangkat lunak bebas sesuai keinginan Anda.
sumber
Eclipse CDT akan memberikan pengalaman yang sebanding dengan menggunakan Visual Studio. Saya menggunakan Eclipse CDT setiap hari untuk menulis kode dan men-debug proses lokal dan jarak jauh.
Jika Anda tidak terbiasa menggunakan IDE berbasis Eclipse, GUI akan membutuhkan waktu untuk membiasakan diri. Namun, begitu Anda memahami ide-ide GUI yang unik untuk Eclipse (misalnya perspektif), menggunakan alat menjadi pengalaman yang menyenangkan.
Perkakas CDT menyediakan pengindeks C / C ++ yang layak yang memungkinkan Anda untuk dengan cepat menemukan referensi ke metode dalam basis kode Anda. Ini juga menyediakan alat ekspansi makro yang bagus dan dukungan refactoring terbatas.
Sehubungan dengan dukungan untuk debugging, CDT dapat melakukan semua yang ada di daftar Anda dengan pengecualian membaca dump inti (mungkin mendukung ini, tetapi saya belum pernah mencoba menggunakan fitur ini). Juga, pengalaman saya dengan kode debug menggunakan template terbatas, jadi saya tidak yakin pengalaman apa yang akan diberikan CDT dalam hal ini.
Untuk informasi lebih lanjut tentang debugging menggunakan Eclipse CDT, Anda mungkin ingin memeriksa panduan ini:
sumber
gdb -tui berfungsi baik jika Anda menginginkan sesuatu GUI-ish, tetapi masih berbasis karakter.
sumber
Lihat Nemiver C / C ++ Debugger . Mudah untuk menginstal di Ubuntu (Developer Tools / Debugging).
Perbarui: Tautan baru.
sumber
Qt Creator sepertinya barang bagus. Seorang kolega menunjukkan kepada saya satu cara mengaturnya untuk debugging:
Itu mungkin tampak seperti banyak pekerjaan untuk men-debug aplikasi yang sudah saya susun, tetapi itu sepadan. Debugger menunjukkan thread, tumpukan dan variabel lokal dengan cara yang mirip dengan Visual Studio dan bahkan menggunakan banyak cara pintas keyboard yang sama. Tampaknya menangani template dengan baik, setidaknya std :: string dan std :: map. Melampirkan ke proses yang ada dan dump inti tampaknya didukung, meskipun saya belum mengujinya.
Ingatlah bahwa saya menggunakannya kurang dari satu jam sekarang, tetapi saya terkesan sejauh ini.
sumber
Saya benci ide pengembangan Windows, tetapi VC ++ debugger adalah yang terbaik yang pernah saya lihat. Saya belum menemukan ujung depan GUI yang mendekati VC.
GDB luar biasa begitu Anda benar-benar terbiasa. Gunakan itu dalam amarah yang cukup dan Anda akan menjadi sangat mahir. Saya dapat berkeliling program melakukan semua hal yang Anda daftarkan tanpa banyak usaha lagi. Memang butuh sebulan atau lebih menderita melalui tautan SSH ke server jauh sebelum saya mahir. Saya tidak akan pernah kembali lagi.
DDD benar-benar kuat tetapi cukup buggy. Saya menemukan itu cukup sering membeku ketika mendapat pesan dari GDB bahwa itu tidak grok. Ini bagus karena memiliki jendela antarmuka gdb sehingga Anda dapat melihat apa yang terjadi dan juga berinteraksi dengan gdb secara langsung. DDD tidak dapat digunakan pada sesi X jarak jauh di lingkungan saya (masalah nyata, karena saya duduk di klien tipis ketika saya melakukan Unix dev) untuk beberapa alasan jadi itu keluar untuk saya.
KDevelop mengikuti gaya khas KDE dan mengekspos SEMUANYA kepada pengguna. Saya juga tidak pernah beruntung men-debug program non KDevelop di KDevelop.
Gnat Programming Studio (GPS) sebenarnya merupakan front-end yang bagus untuk GDB. Itu tidak hanya mengelola proyek Ada, jadi ada baiknya mencoba jika Anda membutuhkan debugger.
Anda dapat menggunakan Eclipse, tetapi ini cukup berat dan banyak orang Unix berpengalaman yang pernah bekerja sama dengan saya (termasuk saya) tidak terlalu peduli dengan antarmuka, yang tidak hanya STFU dan keluar dari jalan Anda. Eclipse juga tampaknya mengambil banyak ruang dan berlari seperti anjing.
sumber
Saya menggunakan cgdb, sederhana dan bermanfaat
sumber
Saya menggunakan banyak DDD, dan itu sangat kuat setelah Anda belajar menggunakannya. Satu hal yang akan saya katakan adalah jangan menggunakannya lebih dari X di atas WAN karena tampaknya melakukan banyak pembaruan layar yang tidak perlu.
Juga, jika Anda tidak dikawinkan dengan GDB dan tidak keberatan menyuap sedikit uang, maka saya akan mencoba TotalView. Ini memiliki sedikit kurva pembelajaran yang curam (itu pasti bisa lebih intuitif), tapi itu adalah debugger C ++ terbaik yang pernah saya gunakan pada platform apa pun dan dapat diperluas untuk mengintrospeksi objek Anda dengan cara kustom (sehingga memungkinkan Anda untuk melihat Daftar STL sebagai daftar objek aktual, dan bukan sekelompok anggota data internal yang membingungkan, dll.)
sumber
Lihatlah proyek Eclipse CDT. Ini adalah plugin untuk Eclipse yang ditujukan untuk pengembangan C / C ++ dan termasuk perspektif debugging kaya fitur yang cukup (yang di belakang layar menggunakan GDB). Ini tersedia di berbagai platform.
sumber
Mirip nyaman dengan gdb frontend gerhana adalah frontend emacs, terikat erat dengan emacs IDE. Jika Anda sudah bekerja dengan emacs, Anda akan menyukainya:
GDB Emacs Frontend
sumber
DDD adalah antarmuka GNU untuk gdb: http://www.gnu.org/software/ddd/
sumber
Saya menggunakan KDbg (hanya berfungsi di bawah KDE).
sumber
Saya sudah mencoba beberapa guis berbeda untuk gdb dan telah menemukan DDD menjadi lebih baik dari mereka. Dan sementara saya tidak bisa mengomentari yang lain, penawaran non-gdb untuk linux saya telah menggunakan sejumlah debugger lain pada platform lain.
gdb melakukan sebagian besar hal yang Anda miliki di daftar keinginan Anda. DDD menempatkan yang lebih baik di depan mereka. Misalnya penggantian ulir dibuat lebih sederhana. Pengaturan breakpoints adalah sesederhana yang Anda harapkan.
Anda juga mendapatkan jendela klik jika ada sesuatu yang tidak jelas yang ingin Anda lakukan.
Satu fitur dari DDD yang menonjol di atas debugger lain yang telah saya gunakan adalah data "grafik". Ini memungkinkan Anda untuk menampilkan dan mengatur struktur, objek, dan memori sebagai kotak yang dapat diseret. Mengklik dua kali pointer akan membuka data yang direferensikan dengan tautan visual kembali ke induknya.
sumber
Qt Creator-on-Linux tentu saja setara dengan Visual Studio-on-Windows untuk C ++ saat ini. Saya bahkan akan mengatakan lebih baik di sisi debugger.
sumber
Ada satu IDE yang hilang dalam daftar ini dan yang sangat efisien (Saya telah menggunakannya di banyak proyek C / C ++ tanpa masalah): Netbeans .
sumber
Apa yang dapat dilangkahi akan dibatasi oleh informasi debug yang dihasilkan oleh g ++, sebagian besar. Emacs menyediakan antarmuka ke gdb yang memungkinkan Anda mengontrolnya melalui bilah alat / menu dan menampilkan data dalam jendela terpisah, serta mengetik perintah gdb secara langsung. Eclipse's CDT menyediakan alat serupa. Saya pernah mendengar tentang Anjuta dan Code :: Blocks tetapi tidak pernah menggunakannya.
sumber
Sebagai seseorang yang akrab dengan Visual Studio, saya telah melihat beberapa IDE open source untuk menggantinya, dan KDevelop datang IMO terdekat untuk menjadi sesuatu yang orang Visual C ++ dapat duduk dan mulai menggunakan. Ketika Anda menjalankan proyek dalam mode debugging, ia menggunakan gdb tetapi kdevelop menangani semuanya sehingga Anda tidak perlu tahu itu gdb; Anda hanya loncatan tunggal atau menugaskan jam tangan ke variabel.
Sayangnya, itu masih tidak sebagus Visual Studio Debugger.
sumber
Anda tidak menyebutkan apakah Anda menggunakan Windows atau UNIX.
Pada sistem UNIX, KDevelop bagus tetapi saya menggunakan KDbg karena mudah digunakan dan juga akan bekerja dengan aplikasi yang tidak dikembangkan di KDevelop.
Gerhana bagus di kedua platform.
Di Windows, ada paket hebat bernama Wascana Desktop Developer yang Eclipse CDT dan MinGW semuanya dikemas dan dikonfigurasikan dengan baik untuk meminimalkan rasa sakit. Ini hal terbaik yang saya temukan untuk mengembangkan kode GNU di Windows.
Saya telah menggunakan semua debugger ini dan tidak ada yang sebagus MS Dev Studio. Eclipse / Wascana mungkin yang paling dekat tetapi memiliki keterbatasan seperti Anda tidak dapat melangkah ke DLL dan itu tidak melakukan pekerjaan yang baik untuk memeriksa variabel.
sumber
Apakah Anda pernah melihat debugger DS-5 ?
Ada versi berbayar yang mencakup banyak fitur bermanfaat, tetapi Anda juga dapat menggunakan Edisi Komunitas secara gratis (yang juga cukup berguna terutama untuk sistem tertanam).
Saya memiliki pengalaman positif dengan alat ini ketika men-debug aplikasi Android di perangkat nyata menggunakan gerhana.
sumber
The Code: Blok C ++ IDE memiliki bungkus grafis, dengan beberapa fitur yang Anda inginkan, tapi tidak seperti kekuatan VS.
sumber
VisualGDB adalah plugin Visual Studio lain untuk mengembangkan dan men-debug aplikasi pada platform linux dan embedded.
sumber
KDevelop bekerja dengan sangat baik.
sumber
Sudahkah Anda mencoba gdb -w dengan cygwin gdb. Ini dianggap memiliki antarmuka windows yang bekerja dengan cukup baik.
Satu-satunya masalah yang saya temukan adalah bahwa pada mesin saya sekarang ini tidak berjalan seperti itu sampai setelah saya menginstal ddd. Saya menduga bahwa ini memerlukan tcltk yang diinstal ketika saya menginstal ddd.
sumber
Versi terbaru Geany mendukungnya (hanya di Linux)
sumber
Jika Anda mencari gdb di bawah Visual Studio, lalu periksa WinGDB .
sumber
Dalam 15 bulan terakhir saya menggunakan wawasan (datang dengan FC6). Ini tidak bagus, ditulis dalam Tcl / Tk, tetapi sederhana dan bermanfaat. DDD memiliki kualitas / utilitas yang serupa, tetapi agak sulit digunakan (berbagai gangguan dan kelalaian GUI). Saya juga mencoba mengintegrasikan gdb dengan IDE saya, SlickEdit. Itu bekerja OK (saya bermain sekitar 4 jam dengan itu), tapi saya tidak suka saklar konteks GUI. Saya suka IDE saya untuk tetap tidak berubah saat saya sedang debugging; pada Windows saya menggunakan SlickEdit untuk IDE dan Visual Studio Debugger untuk debugging. Jadi dari 3: Insight, DDD dan SlickEdit, Insight adalah pilihan pertama saya, saya menggunakannya> 95% dari waktu, baris perintah gdb dan DDD membentuk 5% lainnya. Jika saya mendapatkan kesempatan, saya akan mengevaluasi Eclipse di beberapa titik, PC pekerjaan saya sepertinya tidak memiliki cukup RAM (1GB saja) untuk menjalankan Eclipse dengan cukup baik.
Saya juga telah mendengar banyak pujian untuk TotalView, termasuk tangan pertama saat wawancara kerja. Saya memperoleh eval untuk perusahaan kami pada akhir 2008, tetapi pada akhirnya kami tidak melanjutkan karena gdb cukup baik untuk kebutuhan kami; dan gratis dan ada di mana-mana.
sumber
Gunakan www.zero-bugs.com/ Zero debugger, membutuhkan dukungan C ++ 0x dari gcc
sumber
Saya sedang mencari debugger untuk melangkah melalui program yang sedang berjalan. Katakan: Lampirkan. Programnya dibangun dengan gerhana, tetapi karena mungkin beberapa penghalang multithreadding, tidak ada sourcefile mana suka. Masa bodo.
Saya menjadi sangat nyaman dengan NetBeans.
Sekarang jendela menghilang dan Anda tidak melihat apa pun. lepaskan dari proses. Kotak Baca "Stop" membantu.
Pergi ke [window] -> [Debugging] -> Akankah window Anda membuat compfortable.
sumber