A GDB parancsok megtanulása a vödörlistámban van, de közben van egy grafikus hibakereső a * nix platformokhoz, amelyek elfogadja a Windbg parancsokat, és hasonló funkciókkal rendelkezik? Például az a lehetőség, hogy több szerkeszthető memóriaablakot hozhat ki, lépés közben automatikusan szétszedheti a területet, beállíthatja a szétszerelési ízt, és van egy ablak szerkeszthető értékű regiszterekkel?
Megjegyzések
- @AshRj ah, értem, mire gondolsz most. Tévedésem, elnézést.
- Voltron teljesen új, de ígéretesnek tűnik (még nem teszteltem).
- SO-n: stackoverflow.com/questions/79023/…
Válasz
Elindítottam egy saját gdb kezelőfelületemet, gdbgui néven, kiszolgáló (pythonban), amely lehetővé teszi a teljes funkcionalitású frontend elérését a böngészőben .
Telepítés
pip install gdbgui --upgrade
vagy töltse le a következő címen: gdbgui.com
Minden platformon (Linux, MacOS és Windows) és böngészőkön működik JavaScript-sel.
Futtassa a
Csak írja be
gdbgui
a terminálba, és Ön Az r böngésző új lapot nyit meg.
Jellemzők
- töréspontok beállítása / eltávolítása
- forráskód megtekintése, opcionális belső gépi kóddal
- az aktuális keret kiválasztása a veremben
- lépés a forráskódon vagy a gépi kódon keresztül
- változók létrehozása / felfedezése
- szálak megtekintése / kiválasztása
- memória felfedezése
- regiszterek megtekintése
- teljes gdb terminál funkció, így küldhet hagyományos gdb parancsokat, és tekintse meg a gdb / inferior program kimenetét
- a csodálatos Chrome hibakereső ihlette elrendezés
- a Mozilla RR-jével kompatibilis, a fordított hibakereséshez
Megjegyzések
- Ez valóban jó munka. A tervezés eljut az átlagos használati eset lényegéhez. Tetszik. Támogatja a távoli hibakeresést is (vagy inkább a
target remote host:port
gdb parancs használatát. Szépen sikerült. Lehet, hogy a menüben egy távoli gazdagéphez való csatlakozás lehetőségének hozzáadása lenne jó hozzáadás -on. Lehetséges lenne kicsinyíteni a ‘ regiszter méretét? Minden információ rendelkezésre áll, de (legalábbis az ARM-en) ‘ nem látja az összes regisztert egyszerre, ezért görgetnie kell. - Az itt található megjegyzések nem egyéni
gdbgui
támogatásra vonatkoznak. Kérjük, nyisson meg egy új kérdést az sx-en, vagy használja a gdbgui támogató csatornákat / hibakeresőt.
Válasz
Bár néhány ember nem ” Nem törődve a kezelőfelülettel, érdemes megemlíteni, hogy a GDB-nek saját beépített GUI-ja is van (TUI).
A GDB GUI módban elindítható a következő paranccsal: gdb -tui
Itt megtalálhatja a TUI-parancsok gyors hivatkozását: http://beej.us/guide/bggdb/#qref
Válasz
Általában az Emacs GUD-ot használtam GDB frontendként.
Nem túl nehéz használni, lehetővé teszi a töréspontok vizuális beállítását (vagy ha úgy tetszik, a GDB ablak).
Többféle nézete van, amelyeket a legfelső szintű GDB menüből érhet el:
Ezenkívül olyan finomságokat is lehetővé tesz, mint például az, hogy az értékeket úgy ellenőrizheti, hogy rájuk csúszik:
A használatához először navigálnia kell a a bináris mappát a következővel: C-x C-f
, majd M-x gdb
(Ez “s” Alt + X
” , majd írja be a “gdb
” parancsot. Ezt követően beírhat egy gdb parancssort, vagy csak az [Enter]
gombra kattintva elfogadhatja az alapértelmezett értéket. Innentől kezdve csak beírja a “start” parancsot a gdb ablakba minden olyan paraméterrel, amelyet át akar adni a hibakereső programnak.
Ezek után nagyjából aranyszínű vagy, de csak egy nézettel. A képernyő tetején található menük a “GUD” alatt lehetővé teszik, hogy más releváns nézeteket nyithasson meg bármilyen hibakereséshez.(A keretek külön ablakok, a “Windows” pedig kereten belüli ablakok)
Általában alapértelmezés szerint egy töréspontot állítanak be a program indításakor, és ezután vagy navigálhat a kódban a felső részén található gombokkal. az ablak, vagy ha nincs kódod, testreszabhatod a nézetedet, hogy végig tudd lépni a megtekintett bináris fájl szétszerelését.
Az ablak tetején található gombok körülvéve “{} “a kódszintű léptetésre szolgálnak, a” <> “ikonnal ellátott gombok pedig az utasításszintű hibakeresésre szolgálnak. Tehát valószínűleg a baloldalra akar összpontosítani, ha normál hibakeresést végez, és inkább a jobb oldalra kell összpontosítania, ha belemegy a valódi apróságokba.
Ha valaha is eltéved, ez az ikon:
Ez egy teljes könyv, amely valószínűleg megválaszolja a kérdéseit. Az egyetlen alkalom, hogy nem létezik az Emacs-ban, ha Debian-t használ (az Ubuntu rendben van), és az Emacs-ot telepítette a repóiból. Ebben az esetben telepítenie kell a “emacs<vesrsion>-common-non-dfsg
” (a “<version>
” nem decimális számjegyek, amelyeket M-x version
ad vissza az Emacs-ben)
Megjegyzések
- Ez a Spacemacs és nem a GNU Emacs igaz?
- Nem. Ez egyszerű ‘ ol GNU Emacs, csak az én stílusom volt, hogy így nézzek ki. Semmi, amit fent említettem, nem csak a konfigurációmra vonatkozik. (És valójában a Spacemacs is csak egy Emacs-konfiguráció, de fogalmam sincs, ha ez megváltoztatja a GDB használatát
- Ez a ‘ nem tartalmazza az Emac-okat. Milyen operációs rendszert és csomagokat futtat?
- Úgy tűnik, hogy a Power Line csomag telepítve van egyéb dolgok. emacswiki.org/emacs/PowerLine
- @mrbean Ez Linux Mint-en és igen, azt hiszem, az Emacs-témám 2013-ban volt base16-holnap a PowerLine-vel (Szép elismerés btw!)
Válasz
Az én véleményem kicsit elfogult, de az assembler hibakereséséhez a legjobb GDB “frontend” van az IDA (támogatja a távoli GDB célokkal folytatott kommunikációt). A forráskód hibakereséséhez azonban a KDBG-t javasolnám.
Megjegyzések
- Valójában az IDA használatát javasolnám ‘ s
linux_server
távoli GDB-n keresztül, ez ‘ képes és gyorsabb (mivel bináris protokollt használ, és nem szöveges ). - Kérjük, indokolja meg ajánlását. A válaszok Nem csak az OP-ra, hanem minden más emberre íródnak, akik a jövőben találkozhatnak ezzel.
- Alapvetően azért, mert Ön rendelkezik az IDA teljes hatáskörével (beépülő modulok, IDAPython szkriptek, ismert GUI,. ..) és nem csak a GDB kezelőfelülete.
Válasz
Még a súlyos leszavazások kockázatával is , Szeretnék a sima régi gdb
felszólítás mellé állni, és javasolni egy GUI kezelőfelület ellen. A GDB fejlettebb használatának elsajátítását a A hibakeresés művészete néhány évvel ezelőtt. A GDB-t és a DDD-t, valamint az Eclipse-t a GDB kezelőfelületeiként írja le.
Igaz, hogy legtöbbször a Vim-et használom IDE-ként a terminál és tmux
(korábbi screen
és byobu
). Ezért váltok a a terminál multiplexerem, hogy gyorsan váltsak a kód és a hibakereső között. A GDB felszólítás – néhány hetes próbálkozás után a TUI-val mindent szerkesztett, amire valaha vágytam, és ne feledje, hogy többször is csatolhatja ugyanahhoz a folyamathoz (ezáltal a memóriába tekinthet, ahogy leírja).
Úgy tűnik, hogy az összes kezelőfelület lemaradt egy kicsit – nem meglepő -, és ésszerűbb megbékélni a GDB felszólításával, annak finomságaival és furcsaságaival. Ne feledje, hogy csupasz fém beállításnál ez lehet az egyetlen dolog, ami Önnek van. Ezért van értelme megtanulni, még akkor is, ha talál egy “megfelelő” GUI-t a saját mércéje szerint.
A GDB újabb verziói támogatják a Python parancsfájlokat is, és ezen keresztül nagyon hatékony eszközöket kínálnak a hibakereséshez, akár csak a parancssorból.
Ha feltétlenül ragaszkodik a GUI kezelőfelületéhez, akkor az IDA Pro-t is javasolnám abból az egyszerű okból, hogy egyetlen kezelőfelületet ad a különféle hibakeresőknek, és meg kell csak egyszer tanulja meg (vagy testreszabhatja) a parancsikonjait. Hátrányok: ár és rugalmasság, ha nincs licenced egy adott gépre, vagy nincs módod alagutazni egy GDB szerverre stb. …
Nincs tudomásom a GDB egyetlen kezelőfelületéről sem amely elfogadja a WinDbg parancsokat. És csak ismét hangsúlyozhatom: a vanília GDB megtanulásába fektetett idő gyümölcseit úgyis betakaríthatja. Ne zárkózzon el az erőfeszítéstől. A WinDbg-ben rengeteg olyan dolog van, amely kifejezetten a Windows működésére, a Windows kernel működésére és így tovább. A GDB sokkal általánosabb.
Válasz
Szeretnék javasolni DDD .
Ha forráskódot kapott, akkor nézze meg a QTCreator webhelyet. A hibakereső hasonló a Visual Studio-hoz, ha ismeri ezt.
Megjegyzések
- I ‘ ve
DDD
használta, és nem volt ‘ ta ventilátor. ‘ Megnézem azonban a QtCreatort, köszönöm! - A DDD kiválóan alkalmas az adatstruktúrák megjelenítésére, ezeket táblára fektetheti (egy könnyű tábla ). Ezért az adat-kijelző-hibakereső.
- A DDD első pillantásra furcsának és korszerűtlennek tűnik, de ‘ valóban hatalmas.
Válasz
Nem GUI, de jó helyettesítő, ha már megszokja (és személy szerint szerintem a legtöbb dolognál gyorsabb ) -> https://github.com/gdbinit/Gdbinit .
Eszembe jutott, amikor elkezdtem * nix tolatni, és volt hogy először szembesüljek a gdb-vel. Utálta és + mammon original “s gdbinit megmentette a napomat. Manapság a gdb-t részesítem előnyben a legtöbb GUI-hibakeresővel.
Próbálja ki 🙂
Teljes nyilvánosságra hozatal: Én vagyok az eszköz szerzője.
Hozzászólások
- Írjon egy közleményt, miszerint a Gdbinit egy szoftver, amelyet ‘ karbantart …
- Így? ‘ ingyenes, bárki számára elérhető. Nem éppen itt próbál semmit eladni. Geez …!
- @ fg- Ez még mindig lehet olyan reklám, amely nem a tapasztalatokon alapul, hanem kizárólag azon a tényen, amelyet Ön írt.
- Tehát ‘ nem hirdeti hasznos eszközeit, amelyek megoldják a problémákat, és meg kell várni, amíg mások megteszik? Ez az ‘ egy nagyon furcsa gondolkodási mód a problémamegoldó számára ” közösség “.
- @ fG- olvassa el a GYIK-ot: reverseengineering.stackexchange.com/faq#promotion
Válasz
Nem igazán szeretem a DDD-t, annyira 90 “van benne a GUI-ban.
szeretem ajánlani a KDBG-t, amely egy KDE kezelőfelület a gdb-hez. Ezenkívül érdemes megnézni a Cgdb fájlt, amely a gdb átok kiterjesztése.
Az utóbbi időben találkoztam Nemiver -vel, nagyon ígéretesnek tűnik.
Megjegyzések
- A KDBG jól működik a forrás nélküli szétszereléshez és hibakereséshez is? A képernyőképeiken csak a forráskód szerepelt.
- Nem tudom ‘, soha nem is próbáltam …
- ” it ‘ s így 90 ‘ s benne ‘ s GUI ” … inkább 80 ‘ s
- A GUI megjelenése az egyetlen hátránya?
Válasz
cgdb szintén nagyszerű lehetőség, ha a Vim-et használja.
A cgdb sok parancsot oszt meg a vim-mel, például a regex kereséssel és sok mással. A cgdb honlapjáról:
A billentyűzet felülete a vim mintájára készült, így a vim felhasználóknak otthon érezhetik magukat a cgdb használatával.
Válasz
Kódoláskor általában Vim + gdb-t használok CLI módban, stb. De néha GUI is előnyösebb.
Az említetteken kívül még egy lehetőség a Code :: Blocks. GDB-t és CDB-t használ háttérként. A GDB esetében szétszereléshez választhatja az AT & T, Intel vagy custom lehetőséget. Támogatja a vegyes módot, valamint a tiszta utasítások felsorolását. Ezenkívül beállíthatja a változók (kódban) kiértékelésére a kurzor stb. Alatt.
Csak egy memória kiírási ablak van, de emellett további nyers GDB parancsokat is megadhat a Parancssor alul, amely az ablakra kerül kinyomtatásra – így pl memória kiírások.
Külön ablakkal rendelkezik a CPU regiszterekhez, ezek nem közvetlenül szerkeszthetők, de az említett parancssorok és egyéb értékek szerint is beállíthat értékeket:
set $eax = 123 set var xyz = "q"
Az alábbi kép működés közben mutatja a forrás hibakeresését egy KVM-en (Nyissa meg a linket, ha nagyobb formátumban szeretné megtekinteni).
Egy problémám volt vele kapcsolatban néhány GUI-hiba stb., amikor Ubuntu 12-n futtatom – az UB 12 10.10-es verzióval rendelkezik. De az jelenlegi kiadás (12.11) fordítása és telepítése fájdalommentes volt.
Pl. egyéni telepítési útvonal telepítéséhez (ha a terjesztésnek nincs naprakész verziója, és mindkettőt szeretné használni):
- Download (SVN or release). - Unpack. - ./configure --exec-prefix=/blahblah/codeblocks --prefix=/blahblah/codeblocks - make - sudo make install 2>&1 | tee my_install.log
Válasz
Ez a Dr. Dobbs cikk részletesen bemutatja a Linux operációs rendszeren történő hibakereséshez szükséges felhasználói felületeket. Javaslom a Qt-Creator nevű GDB hibakeresést Linux környezet alapján.A cikk egyébként csak a C ++ kód hibakeresését vizsgálja, de ez elég a GDB-k hibakeresési funkcióinak bemutatásához.
Válasz
Ajánlani fogom UltraGDB , amely GDB GUI kezelőfelület és könnyű, az Eclipse technológián alapuló IDE.
Válasz
Van Affnic Debugger GUI . Ez nem ingyenes, de létezik egy egyszerű verzió. Windows, Linux rendszereken elérhető & MacOS.
A hivatalos webhelyről
Affinic Debugger GUI .aka. ADG, grafikus felhasználói felületként lett tervezve a különböző hibakeresők számára. Ez a build kifejezetten a GDB-re, a GNU hibakeresőre irányul. A grafikus ablakokkal az ADG felszabadíthatja a hibakeresők teljes erejét, ha többször megtekintik információtípusok egyetlen nézetben és a hibakeresők manőverezése egyszerű kattintással. Az ADG integrált parancsterminált is biztosít a felhasználók számára a hibakereső parancsok közvetlen bevitelére. Az ADG elérhető Linux / Windows / Mac OS X rendszereken.
Válasz
A telepítés két kattintással történik (az egyik a VS.Code, a másik a kiterjesztés telepítéséhez), nagyszerű azok számára, akik a Windows Visual Studio szolgáltatásból érkeznek, és azonnal produktívak szeretnének lenni.
Válasz
Van “s Voltron , amely egy kiterjeszthető Python hibakereső felhasználói felület, amely támogatja az LLDB, GDB, VDB , valamint a WinDbg / CDB (PyKD-n keresztül), és MacOS, Linux és Windows rendszereken fut. Az első háromnál támogatja az x86, x86_64 és az arm egyenletes arm64 támogatását az lldb-hez, miközben még a powerpc támogatást is hozzáadja a gdb-hez.
A szerző egy bináris ninja plugint is írt a Voltron integrálásához – https://github.com/snare/binjatron – amely lehetővé teszi a szinkronizált nézeteket.
Válasz
Ne feledje, hogy az alábbiak csak a forráskód hibakeresésére vonatkoznak.
CLion
egy IDE
a gdb
használatával. Még mindig képes parancsokat beírni, de számos funkció zökkenőmentesen megvalósul a grafikus felhasználói felületen, például léptetés, az éppen aktív változók megtekintése és a breakpoints
beállítás. További információ here
.
Válasz
Használhatja a GDBFrontend alkalmazást. Ez egy nagyon feltörhető GDB kezelőfelület.
Teljes nyilvánosságra hozatal: Én vagyok a fejlesztő.