it-swarm-id.com

Apakah ada GUI C ++ gdb untuk Linux?

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 penghalang 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?

Edit:
Mendaftar kemungkinan itu bagus, dan saya akan mengambil apa yang bisa saya dapatkan, tetapi akan lebih membantu jika Anda bisa memasukkan dalam tanggapan Anda:
(a) Apakah Anda benar-benar menggunakan GUI ini dan jika demikian, umpan balik positif/negatif apa yang Anda miliki tentang itu.
(b) Jika Anda tahu, mana dari fitur yang disebutkan di atas yang tidak didukung

Daftarnya mudah didapat, situs-situs seperti ini hebat karena Anda bisa mendapat gambaran tentang pengalaman pribadi orang-orang dengan aplikasi.

204
HappyDude

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.

55
Vicent Marti

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 (mis. 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 Nice dan dukungan refactoring terbatas.

Berkenaan dengan dukungan untuk debugging, CDT dapat melakukan semua yang ada di daftar Anda dengan pengecualian membaca dump inti (mungkin mendukung ini, tapi 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:

84
Jon Ball

gdb -tui berfungsi baik jika Anda menginginkan sesuatu GUI-ish, tetapi masih berbasis karakter.

78
Carleton

Lihat Nemiver C/C++ Debugger . Mudah untuk menginstal di Ubuntu (Developer Tools/Debugging).

Pembaruan: Tautan baru.

47
Sergey Shandar

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 setelah 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 bermasalah. 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 perlu dicoba 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.

29
Adam Hawes

Qt Creator sepertinya barang bagus. Seorang kolega menunjukkan kepada saya satu cara mengaturnya untuk debugging:

  • Buat proyek baru, "Impor Proyek Berbasis Makefile".
  • Arahkan ke folder proyek root Anda (itu akan mengindeks sumber di bawahnya, dan itu sangat cepat).
  • Buka pengaturan proyek dan tambahkan konfigurasi jalankan, kemudian tentukan executable yang ingin Anda debug, dan argumennya.
  • Qt Creator tampaknya bersikeras membangun proyek Anda sebelum men-debug-nya. Jika Anda tidak menginginkannya, atau tidak menggunakan make, Anda bisa mengganti perintah make. Saya mengubahnya menjadi "benar". :)

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.

28
Soulman

Saya menggunakan gdb, sederhana dan bermanfaat

26
cod

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 sepertinya melakukan banyak pembaruan layar yang tidak perlu.

Juga, jika Anda tidak dikawinkan dengan GDB dan tidak keberatan menipiskan 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 khusus (sehingga memungkinkan Anda untuk melihat Daftar STL sebagai daftar objek aktual, dan bukan sekelompok anggota data internal yang membingungkan, dll.)

16
Nick Bastin

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.

8
user14636

Mirip nyaman dengan frontend Eclipse gdb adalah frontend emacs, terikat erat dengan IDE emacs. Jika Anda sudah bekerja dengan emacs, Anda akan menyukainya:

GDB Emacs Frontend

Saya menggunakan KDbg (hanya berfungsi di bawah KDE).

6
codeguru

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.

5
Marv

Ada satu IDE yang tidak ada dalam daftar ini dan yang sangat efisien (Saya telah menggunakannya di banyak proyek C/C++ tanpa masalah): Netbeans .

5
Florent

DDD adalah GNU frontend untuk gdb: http://www.gnu.org/software/ddd/

5
mmattax

Saya sudah mencoba beberapa guis berbeda untuk gdb dan telah menemukan DDD menjadi yang terbaik dari mereka. Dan sementara saya tidak bisa mengomentari yang lain, penawaran non-gdb untuk linux saya telah menggunakan sejumlah debugger lain di platform lain.

gdb melakukan sebagian besar hal yang Anda miliki dalam daftar keinginan Anda. DDD menempatkan yang lebih baik di depan mereka. Misalnya penggantian ulir dibuat lebih sederhana. Mengatur 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 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.

5
Andrew Edgecombe

Apakah Anda pernah melihat DS-5 debugger ?

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 punya pengalaman positif dengan alat ini ketika debugging Android aplikasi pada perangkat nyata menggunakan Eclipse.

3
Viktor Malyi

Sebagai seseorang yang akrab dengan Visual Studio, saya telah melihat beberapa IDE open source untuk menggantinya, dan KDevelop datang IMO terdekat menjadi sesuatu yang orang Visual C++ dapat duduk dan mulai menggunakan. Ketika Anda menjalankan proyek dalam mode debugging, ia menggunakan gdb tetapi kdevelop cukup banyak 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.

3
Dennis Ferron

Anda tidak menyebutkan apakah Anda menggunakan Windows atau UNIX.

Pada sistem UNIX, KDevelop baik tetapi saya menggunakan KDbg karena mudah digunakan dan juga akan bekerja dengan aplikasi yang tidak dikembangkan di KDevelop.

Eclipse bagus di kedua platform.

Di Windows, ada paket hebat bernama Wascana Desktop Developer yang merupakan Eclipse CDT dan MinGW semuanya dikemas dan dikonfigurasikan dengan baik untuk meminimalkan rasa sakit. Ini hal terbaik yang saya temukan untuk mengembangkan kode GNU pada 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.

3
Adam Pierce

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 di 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.

3
Allen

The Kode: Blok C++ IDE memiliki pembungkus grafis, dengan beberapa fitur yang Anda inginkan, tetapi tidak seperti kekuatan VS.

2
crobar

VisualGDB adalah plugin Visual Studio lain untuk mengembangkan dan men-debug aplikasi pada platform linux dan embedded.

2
Sergey Zhukov

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.

1
BubbaT

KDevelop bekerja dengan sangat baik.

1
Harold Ekstrom

Jika Anda mencari gdb di bawah Visual Studio, lalu periksa WinGDB .

0
Dominic.wig

Versi terbaru Geany mendukungnya (hanya di Linux)

0
Milan Babuškov

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 untuk 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 tidak berubah saat saya sedang debug; 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 mendapat kesempatan, saya akan mengevaluasi Eclipse di beberapa titik, PC pekerjaan saya sepertinya tidak memiliki cukup RAM (hanya 1GB) 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.

0
Radim Cernej

Saya sedang mencari debugger untuk melangkah melalui program yang sedang berjalan. Katakan: Lampirkan. Programnya dibangun dengan Eclipse, tetapi karena mungkin beberapa penghalang multithreadding, tidak ada sourcefile mana suka. Masa bodo.

Saya merasa sangat nyaman dengan NetBeans.

  • [debug] dari menu -> Lampirkan Deugger ...
  • sebagai proses memilih yang akan di-debug
  • sebagai proyek [proyek baru]

Sekarang jendelanya menghilang dan Anda tidak melihat apa pun. lepaskan dari proses. Kotak Baca "Stop" membantu.

  • mengimpor sumber dari proyek seperti mis. map. ".../Proyek Saya/src
  • Sekarang muncul di proyek Anda, dan Anda dapat mengatur breakpoints.
  • lagi ttach debugger
  • memilih proses untuk debug.
  • debugger harus berhenti jika program mencapai breakpoint berikutnya.

Pergi ke [window] -> [Debugging] -> Akankah window Anda membuat compfortable.

0
Cutton Eye

Gunakan www.zero-bugs.com/ Zero debugger, membutuhkan dukungan C++ 0x dari gcc

0
siddhusingh