Soru:
GDB için İyi GUI
mrduclaw
2013-03-30 07:30:22 UTC
view on stackexchange narkive permalink

GDB komutlarını öğrenmek kova listemde, ancak bu arada Windbg komutlarını kabul eden ve benzer işlevlere sahip * nix platformları için grafik hata ayıklayıcı var mı? Örneğin, birden çok düzenlenebilir bellek penceresi ortaya çıkarma, adım atarken bir alanın çevresini otomatik olarak ayırma, sökme çeşidini ayarlama ve düzenlenebilir değerlere sahip kayıtlara sahip bir pencereye sahip olma yeteneği?

@AshRj ah, ne demek istediğini şimdi anlıyorum. Benim hatam, özür dilerim.
[Voltron] (http://ho.ax/posts/2013/06/voltron-a-hacky-ui-for-gdb/) tamamen yeni ama umut verici görünüyor (henüz test etmedim).
SO'da: http://stackoverflow.com/questions/79023/is-there-a-c-gdb-gui-for-linux
On yedi yanıtlar:
#1
+59
cs01
2016-09-26 05:26:05 UTC
view on stackexchange narkive permalink

Tarayıcınızda tam özellikli bir ön uca erişmenizi sağlayan bir sunucu (python'da) olan gdbgui adlı kendi gdb ön ucumu başlattım.

gdbgui screenshot

veya gdbgui.com adresinden indirin

Tüm platformlarda (Linux, macOS ve Windows) ve JavaScript içeren tarayıcılarda çalışır.

Çalıştır

Terminalinize

  gdbgui  

yazmanız yeterlidir, tarayıcınız yeni bir sekme açacaktır .

Özellikler

  • kesme noktaları ayarlama / kaldırma
  • isteğe bağlı satır içi makine koduyla kaynak kodunu görüntüleyin
  • yığındaki mevcut çerçeveyi seçin
  • kaynak kodu veya makine koduyla adım atın
  • değişkenleri oluşturun / keşfedin
  • zincirleri görüntüleyin / seçin
  • belleği keşfedin
  • kayıtları görüntüleyin
  • geleneksel gdb komutlarını gönderebilmeniz ve gdb / alt program çıktısını görüntüleyebilmeniz için tam gdb terminal işlevselliği
  • ama'dan esinlenerek zing Chrome hata ayıklayıcı
  • ters hata ayıklama için Mozilla'nın RR ile uyumlu
Bu gerçekten iyi bir iş. Tasarım, ortalama kullanım durumunun özüne iniyor. Bunu sevdim. Aynı zamanda uzaktan hata ayıklamayı da destekler (veya daha doğrusu, "hedef uzak ana bilgisayar: bağlantı noktası" gdb komutunun kullanılmasını destekler. Harika. Belki de menüdeki uzak bir ana bilgisayara bağlanma yeteneğini eklemek güzel bir eklenti olabilir. 'kayıt' boyutunu küçültmek mümkün olabilir Tüm bilgiler mevcuttur, ancak (en azından ARM'de) tüm kayıtları aynı anda göremezsiniz, bu yüzden kaydırmanız gerekir.
Buradaki yorumlar bireysel "gdbgui" desteği için değildir. Lütfen sx üzerinde yeni bir soru açın veya gdbgui destek kanallarını / hata izleyiciyi kullanın.
#2
+46
mncoppola
2013-03-30 08:09:56 UTC
view on stackexchange narkive permalink

Bazı insanlar arayüzünü önemsemese de GDB'nin kendi yerleşik GUI'sinin (TUI olarak adlandırılır) olduğunu belirtmek gerekir.

GDB'yi GUI modunda komutla başlatabilirsiniz : gdb -tui

TUI komutlarına hızlı bir başvuru burada bulunabilir: http://beej.us/guide/bggdb/#qref

#3
+32
Archenoth
2013-04-04 08:50:08 UTC
view on stackexchange narkive permalink

GDB ön ucu olarak genellikle Emacs GUD kullandım.

GDB support in Emacs

Kullanması çok zor değil, size kesme noktalarını görsel olarak (veya tercih ederseniz GDB penceresinden) ayarlamak için.

Üst düzey bir GDB menüsünden erişebileceğiniz birden çok farklı görünüme sahiptir:

GUD Views

Ayrıca, değerleri farenizin üzerine getirerek incelemenizi sağlamak gibi inceliklere de izin verir:

Mouseover values

Kullanmak için önce Cx Cf , ardından Mx gdb ile ikili dosyanızın klasörüne gitmeniz gerekir (Bu " Alt + X ", ardından" gdb "yazarak). Bunu yaptıktan sonra, bir gdb komut satırı yazabilir veya varsayılanını kabul etmek için [Enter] tuşuna basabilirsiniz. Oradan, hata ayıkladığınız programa iletmek istediğiniz parametrelerle gdb penceresine "start" yazmanız yeterlidir.

Bundan sonra, hemen hemen altındasınız, ancak tek bir görünümle. Ekranın üst kısmındaki "GUD" altındaki menüler, hata ayıklamaya çalıştığınız şey için diğer ilgili görünümleri açmanıza izin verecektir. (Çerçeveler ayrı pencerelerdir ve "Pencereler" çerçeve içi pencerelerdir)

Varsayılan olarak, program başlangıcında bir kesme noktası ayarlanır ve daha sonra, ekranın üst kısmındaki düğmeleri kullanarak kodunuzda gezinebilirsiniz. pencere veya kodunuz yoksa, baktığınız ikilinin parçalarına ayrılmasına izin vermek için görünümünüzü özelleştirebilirsiniz.

Pencerenin üst tarafındaki düğmeler "{} "kod düzeyinde adımlama içindir ve simgelerinde" <> "bulunan düğmeler komut düzeyinde hata ayıklama içindir. Bu nedenle, normal kod hata ayıklaması yapıyorsanız muhtemelen sola odaklanmak isteyeceksiniz ve gerçek nitty-gritty'ye giriyorsanız daha çok sağa odaklanacaksınız.

Ayrıca, kaybolursanız, bu simge:

GUD info

Sorularınıza muhtemelen cevap verebilecek bütün bir kitaptır. Emacs'de var olmayacağı tek zaman Debian üzerindeyseniz (Ubuntu iyidir) ve Emacs'i depolarından yüklemenizdir. Bu durumda kılavuzları almak için " emacs<vesrsion>-common-non-dfsg " kurmanız gerekecektir. (" <version> " Emacs'te M-x sürümü tarafından döndürülen ondalık olmayan rakamlardır)

Bu Spacemacs, GNU Emacs değil, değil mi?
Hayır! Bu çok açık bir GNU Emacs, sadece benim tarzımı böyle görünecek şekilde tasarladım. Yukarıda bahsettiğim hiçbir şey yapılandırmama özel değil. (Ve aslında, Spacemacs sadece bir dizi Emacs yapılandırmasıdır, ancak GDB kullanımını değiştirip değiştirmeyeceği konusunda hiçbir fikrim yok)
#4
+27
joxeankoret
2013-03-30 15:12:24 UTC
view on stackexchange narkive permalink

Benim görüşüm biraz önyargılı, ancak derleyicide hata ayıklamak için en iyi GDB "ön ucu" IDA'dır (uzak GDB hedefleriyle iletişimi destekler). Yine de kaynak kodu hata ayıklaması için KDBG'yi öneririm.

Aslında uzak GDB üzerinden IDA'nın "linux_server" ını kullanmanızı tavsiye ederim, daha yetenekli ve daha hızlıdır (çünkü metin tabanlı değil ikili protokol kullanır).
Lütfen tavsiyenizi doğrulayın. Cevaplar sadece OP için değil, gelecekte bununla karşılaşabilecek diğer tüm insanlar için yazılmıştır.
Temel olarak IDA'nın tüm gücüne sahip olduğunuz için (eklentiler, IDAPython komut dosyası, bilinen GUI, ...) ve sadece GDB için bir ön uç değil.
#5
+21
0xC0000022L
2013-04-02 05:58:50 UTC
view on stackexchange narkive permalink

Ciddi bir olumsuz oylama riski altında bile, eski, sade gdb komut isteminin yanında yer almak ve bir GUI ön ucuna karşı öneride bulunmak istiyorum. Birkaç yıl önce Hata Ayıklama Sanatı 'nı okuyarak GDB'nin daha gelişmiş kullanımını öğrenmeye başladım. GDB ve DDD'nin yanı sıra Eclipse'i GDB'nin ön uçları olarak tanımlar.

Kuşkusuz çoğu zaman terminalde IDE'im olarak Vim ve tmux (daha önce byobu ile ekran ). Bu nedenle, kod ve hata ayıklayıcı arasında hızlı bir şekilde geçiş yapmak için terminal çoklayıcımdaki bölmeler arasında geçiş yapıyorum. GDB komut istemi - TUI'yi birkaç hafta denedikten sonra - gerçekten istediğim her şeye sahip ve aynı sürece birden çok kez ekleyebileceğinizi aklınızda bulundurmalısınız (böylece hafızaya tarif ettiğiniz şekilde göz atabilirsiniz).

Görünüşe göre tüm ön uçlar biraz geride kalıyor - şaşırtıcı değil - ve GDB komut istemiyle, onun kibarlıkları ve tuhaflıkları ile hesaplaşmak daha mantıklı. Çıplak metal bir kurulumda sahip olduğunuz tek şeyin bu olabileceğini unutmayın. Bu nedenle, kendi standartlarınıza göre "iyi" bir GUI bulsanız bile öğrenmek mantıklıdır.

GDB'nin daha yeni sürümleri de Python komut dosyası oluşturmayı destekleyecek ve bu sayede hata ayıklamak için çok güçlü bir araç seti sağlayacaktır. Hatta sadece komut satırından bile.

Bir GUI ön ucu kullanmakta kesinlikle ısrar ediyorsanız, size çeşitli hata ayıklayıcılar için tek bir ön uç sağlaması nedeniyle IDA Pro'yu da tavsiye ederim. kısayollarını yalnızca bir kez öğrenin (veya özelleştirin). Dezavantajlar: belirli bir makinede lisansınız olmadığında veya GDB sunucusuna tünel açmanın yolu olmadığında fiyat ve esneklik ...


WinDbg komutlarını kabul eden GDB'nin herhangi bir ön ucundan haberdar değilim. Ve sadece tekrar vurgulayabilirim: Vanilya GDB'yi öğrenmek için harcadığınız zamanın meyvesini yine de alacaksınız. Çabadan çekinme. WinDbg'de Windows'un çalışma şekline, Windows çekirdeğinin çalışmasına ve benzerlerine özgü birçok şey vardır. GDB çok daha geneldir.

#6
+18
omghai2u
2013-03-30 07:39:53 UTC
view on stackexchange narkive permalink

DDD 'yi önermek isterim.

Kaynak kodunuz varsa, QTCreator' a bakmalısınız. Eğer aşina iseniz, hata ayıklayıcısı Visual Studio'nunkine benzer.

"DDD" kullandım ve hayran değildim. Yine de QtCreator'a bakacağım, teşekkürler!
DDD, veri yapılarını görüntülemek için harikadır, bunları bir tahtaya yerleştirebilirsiniz (hafif bir tablo). Dolayısıyla veri görüntüleme hata ayıklayıcı.
DDD ilk bakışta garip ve modası geçmiş görünüyor, ancak gerçekten güçlü.
#7
+11
fG-
2013-04-01 19:42:21 UTC
view on stackexchange narkive permalink

GUI değil, alıştığınızda iyi bir yedek (ve şahsen bence çoğu şey için daha hızlı) -> https://github.com/gdbinit/Gdbinit.

* nix'i ters çevirmeye başladığımda hatırladım ve ilk kez gdb ile yüzleşmek zorunda kaldım. Bundan nefret ettim ve + mammon original'ın gdbinit'i günümü kurtardı. Bugünlerde çoğu GUI hata ayıklayıcısına gdb'yi tercih ediyorum.

Deneyin :-)

Tam açıklama: Aracın yazarıyım.

Gdbinit'in bakımını yaptığınız bir yazılım olduğuna dair bir açıklama yazmalısınız ...
Yani? Ücretsizdir, herkes tarafından kullanılabilir. Burada tam olarak bir şey satmaya çalışmıyorum. Tanrım ...!
@fg- Bu hala deneyime dayalı olmayan, yalnızca o aracı yazdığınız gerçeğine dayalı bir reklam olabilir.
Yani sorunları çözen ve başkalarının bunu yapmasını beklemek zorunda kalan kullanışlı araçlarınızın reklamını yapamazsınız? Bir problem çözücü "topluluk" için gerçekten tuhaf bir düşünme modu.
@fG- lütfen SSS bölümünü okuyun: http://reverseengineering.stackexchange.com/faq#promotion
#8
+10
Mellowcandle
2013-03-30 12:42:53 UTC
view on stackexchange narkive permalink

DDD'yi gerçekten sevmiyorum, GUI'sinde 90'lar var.

gdb'nin KDE ön ucu olan KDBG'yi tavsiye etmek istiyorum. Ayrıca, bir göz atmak isteyebilirsiniz. Gdb için bir lanet uzantısı olan Cgdb.

Son zamanlarda Nemiver ile karşılaştım, gerçekten umut verici görünüyor.

KDBG, kaynak olmadan sökme ve hata ayıklama için de iyi çalışıyor mu? Ekran görüntüleri yalnızca kaynak kodunu gösteriyordu.
Bilmiyorum, daha önce hiç denemedim ...
"GUI'de 90'lar var" ... daha çok 80'ler gibi
GUI'nin görünümü tek dezavantajı mı?
#9
+7
jlhonora
2013-05-08 21:15:02 UTC
view on stackexchange narkive permalink

cgdb, Vim kullanıyorsanız harika bir seçenektir.

cgdb, regex arama ve diğerleri gibi vim ile birçok komutu paylaşır. Cgdb ana sayfasından:

Klavye arayüzü vim'e göre modellenmiştir, bu nedenle vim kullanıcıları cgdb kullanarak kendilerini evlerinde hissetmelidir.

#10
+5
Runium
2013-06-22 04:54:49 UTC
view on stackexchange narkive permalink

Kodlama vb. sırasında genellikle CLI modunda Vim + gdb kullanırım. Ancak bazen bir GUI tercih edilir.

Bahsedilenlerin yanı sıra diğer bir seçenek Code :: Blocks'tur. Arka uç olarak GDB ve CDB kullanır. GDB için sökme işlemi için AT&T, Intel veya özel 'i seçebilirsiniz. Karışık modu ve saf talimatlar listesini destekler. Bunu, değişkenleri (kodda) imleç vb. Altında değerlendirmek için daha da ayarlayabilirsiniz.

Yalnızca bir bellek dökümü penceresi vardır, ancak ham GDB komutları da girebilirsiniz. > Pencereye yazdırılan alttaki komut satırı - örneğin bellek dökümleri.

CPU kayıtları için ayrı bir penceresi vardır, bunlar doğrudan düzenlenemez, ancak belirtilen komut satırına ve diğer değerlere göre değerleri ayarlayabilirsiniz:

  $ eax = 123set var xyz = 'q'  ayarlayın 

Aşağıdaki resim bir KVM'de kaynak hata ayıklamasıyla birlikte eylem halinde gösterir (Daha büyük olarak

Ubuntu 12'de çalıştırdığımda karşılaştığım bir sorun bazı GUI hataları vs. - UB 12 sürüm 10.10'a sahip. Ancak güncel sürüm olan 12.11'in derlenmesi ve yüklenmesi sorunsuzdu.

Ör. özel yükleme yolu kurulumu için (Dağıtımınız güncel sürüme sahip değilse ve ikisine birden sahip olmak istiyorsanız):

  - İndir (SVN veya sürüm). - Paketi açın.- ./configure - -exec-prefix = / blahblah / codeblocks --prefix = / blahblah / codeblocks- make- sudo make install 2>&1 | tee my_install.log  

Code::Blocks with GDB

#11
+4
R.Chatsiri
2013-06-26 09:21:51 UTC
view on stackexchange narkive permalink

Bu Dr Dobbs makalesi, Linux OS'de hata ayıklamaya yönelik GUI'leri ayrıntılı olarak gösterir. Linux ortamına dayalı GDB hata ayıklama adlı Qt-Creator'ı öneririm. Her neyse, makale yalnızca hata ayıklama C ++ kodunu incelemektedir, ancak bu GDB'lerin hata ayıklama özelliklerini göstermek için yeterlidir.

#12
+3
Xiao Ming
2015-06-12 05:12:53 UTC
view on stackexchange narkive permalink

Eclipse teknolojisine dayalı GDB GUI ön ucu ve hafif IDE olan UltraGDB 'yi önereceğim.

#13
+3
0xec
2015-06-12 21:11:55 UTC
view on stackexchange narkive permalink

Affnic Debugger GUI vardır. Ücretsiz değil, ancak hafif bir sürümü var. Windows, Linux & MacOS için kullanılabilir.

Resmi web sitesinden,

Affinic Debugger GUI .aka. ADG, çeşitli hata ayıklayıcılar için grafik kullanıcı arayüzü olarak tasarlanmıştır. Bu yapı, özellikle GNU hata ayıklayıcısı olan GDB'yi hedef almaktadır. Grafik pencereler ile ADG, tek bir görünümde birden fazla bilgi türünü görüntüleyerek ve hata ayıklayıcıları kolayca tıklatarak manevra yaparak hata ayıklayıcıların tüm gücünü açığa çıkarabilir. ADG ayrıca, kullanıcıların hata ayıklayıcı komutunu doğrudan girmeleri için entegre bir komut terminali sağlar. ADG, Linux / Windows / Mac OS X'te mevcuttur.

#14
+3
Sergiy Migdalskiy
2018-02-10 08:31:58 UTC
view on stackexchange narkive permalink

VisualStudio.Code ( VS.Code) Linux üzerinde çalışır ve gdb'yi kullanmanıza izin veren bir "Yerel Hata Ayıklama" uzantısına sahiptir. Çok duyarlı bir kullanıcı arayüzüne sahiptir. Kaynaklar konusunda son derece hafif. Deneyim, Windows for C ++ geliştiricileri için Visual Studio'ya biraz yaklaşıyor (ancak derleme görünümü yok). Ana hata ayıklama kısayolları kutudan çıkar çıkmaz aynıdır (F5, Shift-F5, F10, F11).

Kurulum iki tıklama ile yapılır (biri VS.Code'u, diğeri uzantıyı yüklemek için) , Windows Visual Studio'dan gelen ve hemen üretken olmak isteyen biri için harika.

#15
+2
atdre
2016-09-05 01:57:32 UTC
view on stackexchange narkive permalink

LLDB, GDB, VDB ve WinDbg / CDB'yi (PyKD üzerinden) destekleyen ve macOS, Linux ve Windows üzerinde çalışan, genişletilebilir bir Python hata ayıklayıcı kullanıcı arayüzü olan Voltron var. İlk üçü için x86, x86_64 ve lldb için arm64 desteği ile kolu desteklerken gdb için powerpc desteği bile ekliyor.

Yazar ayrıca Voltron'u entegre etmek için bir Binary Ninja eklentisi yazdı - https : //github.com/snare/binjatron - senkronize görünümlere izin verir.

#16
+2
BullyWiiPlaza
2017-01-17 14:39:06 UTC
view on stackexchange narkive permalink

Aşağıdakilerin yalnızca kaynak kod hata ayıklaması için geçerli olduğunu unutmayın.

CLion kullanan bir IDE 'dir. gdb . Hala komut yazabilirsiniz, ancak GUI'de adım atma, şu anda aktif değişkenleri görme ve kesme noktalarını ayarlama gibi birçok özellik sorunsuz bir şekilde uygulanmaktadır. Daha fazla buradan okuyun.

#17
+1
Oğuzhan Eroğlu
2020-01-22 20:43:11 UTC
view on stackexchange narkive permalink

GDBFrontend kullanabilirsiniz. Bu, hacklenebilir bir GDB ön ucu.

Tam açıklama: Ben geliştiriciyim.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...