GDB-komentojen oppiminen on ämpäri-luettelossa, mutta onko tällä välin graafinen virheenkorjaus nix-alustoille, jotka hyväksyy Windbg-komennot, ja sillä on samanlaiset toiminnot? Esimerkiksi kyky tuoda esiin useita muokattavia muisti-ikkunoita, purkaa automaattisesti alueen ympärille askeleen aikana, asettaa purkamisen maku ja sinulla on ikkuna, jossa on rekisterit, joilla on muokattavia arvoja?
Kommentit
- @AshRj ah, ymmärrän mitä tarkoitat nyt. Virheeni, anteeksi.
- Voltron on täysin uusi, mutta näyttää olevan lupaava (en testannut sitä vielä).
- So: stackoverflow.com/questions/79023/…
vastaus
Aloitin oman gdb-käyttöliittymän nimeltä gdbgui , joka on palvelin (pythonissa), jonka avulla voit käyttää täysin varustettua käyttöliittymää selaimessasi .
Asenna
pip install gdbgui --upgrade
tai lataa osoitteesta gdbgui.com
Toimii kaikilla alustoilla (Linux, macOS ja Windows) ja selaimilla, joissa on JavaScript.
Suorita
Kirjoita vain
gdbgui
päätelaitteeseesi ja sinä r-selain avaa uuden välilehden.
Ominaisuudet
- aseta / poista katkaisupisteet
- näytä lähdekoodi valinnaisella sisäisellä konekoodilla
- valitse nykyinen kehys pinossa
- selaa lähdekoodia tai konekoodia
- luoda / tutkia muuttujia
- tarkastella / valita säikeitä
- tutkia muistia
- tarkastella rekistereitä
- kaikki gdb-päätelaitteen toiminnot, jotta voit lähettää perinteiset gdb-komennot ja tarkastele gdb / huonompi-ohjelmalähtöä
- upean Chrome-virheenkorjaimen innoittama ulkoasu
- yhteensopiva Mozillan RR: n kanssa käänteiseen virheenkorjaukseen
Kommentit
- Tämä on todella hyvää työtä. Suunnittelu pääsee keskimääräisen käyttötapauksen ytimeen. Pidän siitä. Se tukee myös virheenkorjausta (tai pikemminkin tukee
target remote host:port
gdb -komennon käyttöä. Hienoa. Ehkä lisäys yhteyden muodostamiseen etäisäntään valikossa olisi mukava lisäys -on. Olisiko mahdollista pienentää ’ rekisterin kokoa? Kaikki tiedot ovat käytettävissä, mutta (ainakin ARM: ssä) voit ’ t näe kaikkia rekistereitä kerralla, joten sinun on vieritettävä. - Tässä olevat kommentit eivät ole yksittäisen
gdbgui
-tukeen. Avaa uusi kysymys sx: ssä tai käytä gdbgui-tukikanavia / virheenseuraajaa.
Vastaa
Vaikka jotkut ihmiset eivät ” Huolimatta käyttöliittymästä on syytä mainita, että GDB: llä on myös oma sisäänrakennettu käyttöliittymä (kutsutaan TUI).
Voit käynnistää GDB: n GUI-tilassa komennolla: gdb -tui
Pikaohje TUI-komentoihin löytyy täältä: http://beej.us/guide/bggdb/#qref
Vastaus
Olen yleensä käyttänyt Emacs GUD: tä GDB-käyttöliittymänä.
Sitä ei ole liian vaikea käyttää, voit asettaa katkaisupisteet visuaalisesti (tai halutessasi GDB-ikkunasta).
Siinä on useita erilaisia näkymiä, joihin pääset ylätason GDB-valikosta:
Se sallii myös herkkuja, kuten antaa sinun tarkastaa arvoja hiirellä niiden yli:
Jotta voit käyttää sitä, sinun on ensin navigoitava binaarisi kansio C-x C-f
, sitten M-x gdb
(Tämä ”s” Alt + X
” kirjoittamalla sitten ”gdb
”). Tämän jälkeen voit kirjoittaa gdb-komentorivin tai vain hyväksyä sen oletusarvon painamalla [Enter]
. Sieltä kirjoitat vain ”start” gdb-ikkunaan parametreilla, jotka haluat välittää virheenkorjattavalle ohjelmalle.
Sen jälkeen olet melko kultainen, mutta vain yhdellä näkymällä. ”GUD” -kohdan ruudun yläosassa olevien valikoiden avulla voit avata muita asiaankuuluvia näkymiä virheenkorjausta varten.(Kehykset ovat erillisiä ikkunoita ja ”Windows” ovat kehyksen sisäisiä ikkunoita)
Yleensä oletuksena katkaisupiste asetetaan ohjelman käynnistykseen, ja voit sitten joko navigoida koodissasi yläreunan painikkeilla ikkunassa tai jos sinulla ei ole koodia, voit mukauttaa näkymääsi, jotta voit käydä läpi purkamasi binäärikoodin.
Ikkunan yläosassa olevat painikkeet ympäröivät ”{} ”ovat kooditason vaiheistusta varten ja painikkeet, joiden kuvakkeessa on” <> ”, ovat komentotason virheenkorjausta. Joten haluat todennäköisesti keskittyä vasemmalle, jos teet normaalia koodin virheenkorjausta, ja keskity enemmän oikealle, jos olet pääsemässä todelliseen karkeaan.
Jos joskus eksyt, tämä kuvake:
Se on koko kirjan, joka voi todennäköisesti vastata kysymyksiisi. Ainoa kerta, kun sitä ei ole Emacsissa, on, jos käytät Debiania (Ubuntu on kunnossa) ja asennat Emacsin repoistaan. Tällöin sinun on asennettava ”emacs<vesrsion>-common-non-dfsg
” saada käsikirjat. (Kun ”<version>
” on ei-desimaaliluku, jonka M-x version
palauttaa Emacsissa)
Kommentit
- Tämä on Spacemacs eikä GNU Emacs oikein?
- Ei. Tämä on selvä ’ GNU Emacs, minulla on vain tyylini näyttää tältä. Mikään yllä mainitsemastani ei ole ominaista kokoonpanolleni. (Ja itse asiassa Spacemacs on vain joukko Emacs-kokoonpanoja, mutta minulla ei ole aavistustakaan, jos se muuttaa GDB: n käyttöä)
- Että ’ ei ole varastossa Emacseja. Mitä käyttöjärjestelmiä ja paketteja käytät?
- Näyttää siltä, että Power Line -paketti on asennettu muut asiat. emacswiki.org/emacs/PowerLine
- @mrbean Tämä Linux Mintissa ja joo, luulen Emacs-teeman vuonna 2013 oli bas16-huomenna PowerLinen (mukava tunnustus btw!) kanssa
vastaus
Mielipiteeni on vähän puolueellinen, mutta kokoonpanijan virheenkorjaukseen paras GDB: n ”käyttöliittymä” on IDA (se tukee viestintää GDB: n etäkohteiden kanssa). Lähdekoodien virheenkorjaukseen suosittelen kuitenkin KDBG: tä.
Kommentit
- Suosittelen todella käyttämään IDA: ta ’ s
linux_server
etä-GDB: n kautta, se ’ on kykenevämpi ja nopeampi (koska se käyttää binaariprotokollaa eikä tekstipohjaista) ). - Perustele suosituksesi. Vastaukset ei ole kirjoitettu vain OP: lle, vaan kaikille muille ihmisille, jotka saattavat kohdata tämän tulevaisuudessa.
- Pohjimmiltaan siksi, että sinulla on kaikki IDA: n voimat (laajennukset, IDAPython-komentosarjat, tunnettu käyttöliittymä,. ..) ja se ei ole vain GDB: n käyttöliittymä.
Vastaa
Jopa vakavan äänestyksen vaarassa , Haluaisin liittyä tavallisen vanhan gdb
-kehotuksen puoleen ja suositella GUI-käyttöliittymää vastaan. Aloitin oppimalla GDB: n edistyneempää käyttöä lukemalla Virheenkorjauksen taito muutama vuosi sitten. Siinä kuvataan GDB: tä ja DDD: tä sekä Eclipseä GDB: n käyttöliittyminä.
Käytän tosin useimmiten Vimiä IDE: näni pääte ja tmux
(aikaisempi screen
kanssa byobu
). Siksi vaihdan ruudut päätelaitteen multiplekserini vaihtaaksesi nopeasti koodin ja virheenkorjaimen välillä. GDB-kehote – muutaman viikon kokeilun jälkeen TUI: lla – on muokkasi kaikkea mitä ikinä halusin, ja sinun on pidettävä mielessä, että voit liittää useita kertoja samaan prosessiin (katsoen muistia samalla tavalla kuin kuvaat sitä).
Vaikuttaa siltä, että kaikki käyttöliittymät ovat jäljessä pieni – ei yllätys – ja on järkevämpää tulla toimeen GDB-kehotteen ja sen hienovaraisuuksien ja kummallisuuksien kanssa. Muista, että paljaalla metallilla tehdyssä asennuksessa se voi olla ainoa mitä sinulla on. Siksi on järkevää oppia se, vaikka löydätkin ”kunnollisen” graafisen käyttöliittymän omien standardiesi mukaan.
GDB: n uudemmat versiot tukevat myös Python-komentosarjoja ja tarjoavat sen kautta erittäin tehokkaan joukon työkaluja virheenkorjaukseen, jopa komentoriviltä.
Jos ehdottomasti vaadit GUI-käyttöliittymän käyttöä, suosittelen myös IDA Prota siitä yksinkertaisesta syystä, että se antaa sinulle yhden käyttöliittymän useille virheenkorjaajille ja sinun on oppia (tai mukauttaa) sen pikavalintoja vain kerran. Haitat: hinta ja joustavuus, kun sinulla ei ole tietyn koneen lisenssiä tai et voi tunneloida GDB-palvelimelle jne. …
En ole tietoinen mistään GDB: n käyttöliittymästä joka hyväksyy WinDbg-komennot. Ja voin vain korostaa vielä kerran: voit kuitenkin saada vanilja-GDB: n oppimiseen investoidun ajan hedelmän. Älä välitä ponnisteluista. WinDbg: ssä on paljon asioita, jotka liittyvät nimenomaan Windowsin toimintaan, Windows-ytimeen ja niin edelleen. GDB on paljon yleisempi.
vastaus
Haluan ehdottaa DDD .
Jos olet saanut lähdekoodin, sinun kannattaa tarkistaa QTCreator . Sen virheenkorjaus on samanlainen kuin Visual Studion, jos tunnet sen.
Kommentit
- I ’ ve käytetty
DDD
eikä ollut ’ ta-tuuletin. ’ Tarkastan kuitenkin QtCreatorin, kiitos! - DDD soveltuu erinomaisesti tietorakenteiden näyttämiseen, voit sijoittaa ne taululle (kevyt erilaisten taulukko) ). Tästä syystä data-display-debugger.
- DDD näyttää ensisilmäyksellä oudolta ja vanhentuneelta, mutta se ’ on todella tehokas.
Vastaa
Ei käyttöliittymä, mutta hyvä korvaava, kun olet tottunut siihen (ja henkilökohtaisesti luulen, että se on nopeampi useimmille tavaroille ) -> https://github.com/gdbinit/Gdbinit .
Muistin, kun aloitin * nix-peruutuksen ja minulla oli vihaamaan sitä ja + mammonin alkuperäisen gdbinit pelasti päiväni. Nykyään pidän parempana gdb: stä kuin useimmista GUI-virheenkorjauksista.
Kokeile 🙂
Täysi paljastus: Olen työkalun kirjoittaja.
Kommentit
- Sinun tulee kirjoittaa selvitys siitä, että Gdbinit on ohjelmisto, jota ’ ylläpidät …
- Niin? Se on ’ ilmainen, kaikkien käytettävissä. Ei tarkalleen yrittää myydä mitään täällä. Geez …!
- @ fg- Se saattaa silti olla mainontaa, joka ei perustu kokemukseen, vaan yksinomaan siihen, että kirjoitit työkalun.
- Joten voit ’ et mainosta hyödyllisiä työkalujasi, jotka ratkaisevat ongelmia ja joutuvat odottamaan muiden tekevän sen? Se ’ on todella outo ajattelutapa ongelmanratkaisijalle ” yhteisö ”.
- @ fG- lue UKK: reverseengineering.stackexchange.com/faq#promotion
Vastaa
En todellakaan pidä DDD: stä, se on niin 90 ”sen GUI: ssa.
Haluaisin haluaisin suositella KDBG: tä, joka on KDE: n käyttöliittymä gdb: lle. Lisäksi kannattaa ehkä katsoa Cgdb, joka on kirouksen laajennus gdb: lle.
Viime aikoina törmäsin Nemiveriin , se näyttää todella lupaavalta.
Kommentit
- Toimiiko KDBG hyvin myös lähdekoodin purkamisessa ja virheenkorjauksessa? Heidän kuvakaappauksissaan näytettiin vain lähdekoodi.
- En tiedä, en ole koskaan kokeillut sitä ennen.
- ” se ’ s niin 90 ’ s siinä ’ s GUI ” … enemmän kuin 80 ’ s
- Onko graafisen käyttöliittymän ulkonäkö ainoa haittapuoli?
Vastaus
cgdb on myös loistava vaihtoehto, jos käytät Vimiä.
cgdb jakaa paljon komentoja VIM: n kanssa, kuten regex-haku ja monet muut. Cgdb-kotisivulta:
Näppäimistön käyttöliittymä on mallinnettu vim: n mukaan, joten vim-käyttäjien tulisi tuntea olonsa kotoisaksi cgdb: n avulla. = ”565a8b2307”>
vastaus
Käytän yleensä Vim + gdb: tä CLI-tilassa koodattaessa jne. Mutta joskus GUI on parempi.
Yksi vaihtoehto mainittujen lisäksi on Code :: Blocks. Se käyttää GDB: tä ja CDB: tä taustana. GDB: ssä voit valita AT & T, Intel tai custom purettavaksi. Se tukee sekatilaa ja puhtaita ohjeiden luetteloita. Voit edelleen asettaa sen arvioimaan muuttujia (koodissa) kohdistimen alla jne.
Muistin tyhjennysikkunaa on vain yksi, mutta voit myös syöttää raw GDB-komennot kohtaan Komentorivi alareunassa, joka tulostetaan ikkunaan – esim muistin kaatopaikat.
Siinä on erillinen ikkuna suorittimen rekistereille, niitä ei voida muokata suoraan, mutta voit asettaa arvoja mainitulla komentorivillä sekä muilla arvoilla:
set $eax = 123 set var xyz = "q"
Alla oleva kuva näyttää sen toiminnassa lähteen virheenkorjauksen kanssa KVM: ssä (Avaa linkki nähdäksesi sen suuremmassa muodossa).
Yksi asia, joka minulla on ollut sen kanssa, on joitain GUI-virheitä jne., kun suoritan sitä Ubuntu 12: lla – UB 12: lla on versio 10.10. Mutta kääntäminen ja asentaminen nykyisestä julkaisusta , 12.11, oli kivutonta.
Esim. mukautetun asennuspolun asennukselle (jos jakelullasi ei ole päivitettyä versiota ja haluat molemmat):
- Download (SVN or release). - Unpack. - ./configure --exec-prefix=/blahblah/codeblocks --prefix=/blahblah/codeblocks - make - sudo make install 2>&1 | tee my_install.log
Vastaa
Tämä Dr Dobbs -artikkeli näyttää yksityiskohtaiset käyttöliittymät virheenkorjaukseen Linux-käyttöjärjestelmässä. Suosittelen Qt-Creatoria nimeltä GDB debug, joka perustuu Linux-ympäristöön.Joka tapauksessa artikkelissa tarkastellaan vain C ++ -koodin virheenkorjausta, mutta se riittää näyttämään GDB: n virheenkorjausominaisuudet.
Vastaa
Suosittelen UltraGDB , joka on GDB-käyttöliittymä ja Eclipse-tekniikkaan perustuva kevyt IDE.
Vastaa
On Affnic Debugger -käyttöliittymä . Se ei ole ilmainen, mutta lite-versio on olemassa. Se on saatavana Windowsille, Linuxille & MacOS.
Virallisella verkkosivustolla
Affinic Debugger GUI .aka. ADG, on suunniteltu graafiseksi käyttöliittymäksi useille virheenkorjaajille. Tämä koontiversio on suunnattu erityisesti GDB: lle, GNU-virheenkorjaajalle. Graafisten ikkunoiden avulla ADG voi vapauttaa virheenkorjaajien täyden tehon katsomalla useita tietyntyyppisiä tietoja yhdessä näkymässä ja ohjaa virheenkorjauksia helposti napsauttamalla. ADG tarjoaa myös integroidun komentoterminaalin käyttäjille, jotka voivat syöttää virheenkorjauskomennon suoraan. ADG on saatavana Linux / Windows / Mac OS X: ssä.
vastaus
VisualStudio.Code ( VS.Code ) toimii Linuxissa ja sillä on ”Native Debug” -laajennus, jonka avulla voit käyttää gdb: tä. Sillä on erittäin herkkä käyttöliittymä. Se on erittäin kevyt resursseille. Kokemus on jonkin verran lähellä Visual Studiota Windows for C ++ -kehittäjille (kokoonpanonäkymää ei kuitenkaan ole). Tärkeimmät virheenkorjauspikakuvakkeet ovat samat kuin laatikossa (F5, Shift-F5, F10, F11).
Asennus on kahdella napsautuksella (yksi VS.Coden asentamiseen, toinen laajennuksen asentamiseen), hieno jokaiselle, joka tulee Windows Visual Studiosta ja haluaa olla tuottava heti.
Vastaa
Siellä on ”s Voltron , joka on laajennettava Python-virheenkorjauskäyttöliittymä, joka tukee LLDB: tä, GDB: tä, VDB: tä , ja WinDbg / CDB (PyKD: n kautta) ja toimii macOS: lla, Linuxilla ja Windowsilla. Kolme ensimmäistä se tukee x86-, x86_64- ja arm-toimintoja tasaisella arm64-tuella lldb: lle ja lisää samalla tasaisen powerpc-tuen gdb: lle.
Kirjoittaja kirjoitti myös Binary Ninja -laajennuksen Voltronin integroimiseksi – https://github.com/snare/binjatron – joka sallii synkronoidut näkymät.
Vastaa
Huomaa, että seuraava koskee vain lähdekoodien virheenkorjausta.
CLion
on IDE
, joka käyttää gdb
. Sinulla on edelleen mahdollisuus kirjoittaa komentoja, mutta GUI-käyttöliittymässä on monia ominaisuuksia, kuten astuminen, aktiivisten muuttujien näkeminen ja breakpoints
-asetusten määrittäminen. Lue lisää here
.
vastaus
Voit käyttää GDBFrontend . Tämä on erittäin hakkeroitava GDB-käyttöliittymä.
Täysi paljastus: Minä olen kehittäjä.