GNU Debugger | |
---|---|
Típusú | hibakereső és GNU csomag [d] |
Szerző | GNU projekt |
Fejlesztő | közösség |
Beírva | C és séma |
Operációs rendszer | GNU/Linux [3] , BSD [3] , Microsoft Windows [3] és macOS [3] |
Interfész nyelvek | angol |
Első kiadás | 1986 [1] |
legújabb verzió | |
Engedély | GPL 3.0+ [3] |
Weboldal | gnu.org/software/… ( angol) |
Médiafájlok a Wikimedia Commons oldalon |
A GNU Debugger egy hordozható GNU projekthibakereső , amely számos UNIX - szerű rendszeren fut, és számos programozási nyelv hibakeresésére képes, beleértve a C , C ++ , Free Pascal , FreeBASIC , Ada , Fortran és Rust . A GDB egy ingyenes szoftver , amelynek licence a GPL .
Eredetileg 1988 - ban írta Richard Stallman . A BSD disztribúcióhoz mellékelt DBX hibakeresőn alapult . 1990 és 1993 között_ _ a projektet John Gilmour támogatta, miközben a Cygnus Solutions -nél dolgozott . A fejlesztést jelenleg a Free Software Foundation által kijelölt GDB Irányító Bizottság koordinálja . [négy]
A GDB kiterjedt eszközöket kínál a számítógépes programok végrehajtásának felügyeletéhez és vezérléséhez. A felhasználó megváltoztathatja a programok belső változóit, sőt függvényeket is hívhat, függetlenül a program normál viselkedésétől. A GDB képes hibakeresni a végrehajtható fájlokat a.out , COFF formátumban (beleértve a Windows futtatható fájlokat is), ECOFF , XCOFF , ELF , SOM , debug információkat használhat stabs , COFF , ECOFF , DWARF , DWARF2 [6] formátumban . A DWARF2 formátum biztosítja a legnagyobb hibakeresési lehetőségeket.
A GDB-t aktívan fejlesztik. Például a 7.0-s verzió támogatja a "visszafordítható hibakeresést", amely lehetővé teszi a végrehajtási folyamat visszatekerését, hogy megnézze, mi történt. A 7.0-s verzióban a Python -szkriptek támogatása is hozzáadásra került .
Más hibakereső eszközöket hoztak létre a GDB-vel való együttműködéshez, például memóriaszivárgás-érzékelőket.[ adja meg ] .
A GDB lefordítható úgy, hogy támogassa az alkalmazásokat több célplatformhoz, és váltson közöttük egy hibakeresési munkamenet során. A GDB által támogatott processzorok ( 2003 ): Alpha , ARM , H8/300 , System/370 , System/390 , x86 és x86-64 , IA-64 ( Itanium ), Motorola 68000 , MIPS , PA-RISC , PowerPC , SuperH , SPARC , VAX , A29K , ARC , AVR , CRIS , D10V , D30V , FR - 30 , FR - V , Intel i960 , M32R , 68HC11 , Motorola 88000 , MCORE , MN10200 és Story _ Z8000 (Az újabb kiadások ezek egy részét valószínűleg nem támogatják.) Azok a célplatformok, amelyeken a GDB nem futtatható, különösen a beágyazott rendszerek , a beépített szimulátor segítségével ( ARM , AVR processzorok ) támogathatók, vagy a hozzájuk tartozó alkalmazások fordíthatók speciális rutinok, amelyek távoli hibakeresést biztosítanak a fejlesztő számítógépén futó GDB irányítása alatt. A hibakeresés bemeneti fájlja általában nem egy flashelhető bináris fájl, hanem a hibakeresési információkat támogató formátumok egyikében található fájl, elsősorban az ELF, amelyből a flashing bináris kódját speciális segédprogramok segítségével utólag kivonják.
Távoli hibakeresésnél a GDB az egyik gépen fut, a hibakeresés alatt álló program pedig egy másikon. A kommunikáció egy speciális protokoll szerint történik soros porton vagy TCP / IP-n keresztül. A hibakeresővel való interakciós protokoll a GDB-re jellemző, de a szükséges szubrutinok forráskódja megtalálható a hibakereső archívumában. Alternatív megoldásként a GDB csomagból ugyanazt a protokollt használó gdbserver [7] program futtatható a célplatformon alacsony szintű funkciók végrehajtására, például töréspontok beállítására, regiszterek és memória elérésére.
Ugyanezt a módot használják a beépített Linux kernel hibakereső KGDB-vel való interakcióhoz. Ezzel a fejlesztő úgy tudja hibakeresni a kernelt, mint egy normál program: töréspontokat állíthat be, átléphet a kódon, megtekintheti a változókat. A beépített hibakeresőhöz két Etherneten vagy soros kábelen keresztül csatlakoztatott gépre van szükség, amelyek közül az egyik a GDB-t, a másik pedig a kernelt futtatja a hibakereséshez.
A vezető FSF fejlesztők ideológiájának megfelelően [8] a GDB saját grafikus felhasználói felülete helyett lehetőséget biztosít külső IDE -ekhez való csatlakozásra, amelyek grafikus héjakat vezérelnek, vagy szabványos konzol szöveges felületet használnak. A külső programokkal való interfészhez használhat szöveges karakterlánc-nyelvet (ahogyan a DDD shell első verzióiban tették ), egy szövegvezérlő nyelvet gdb/mivagy egy felületet a Python nyelvhez .
Olyan interfészek jöttek létre az Emacs -ben , mint a DDD , cgdb , GDBtk/Insight és "GUD mód" . A GDB-vel kölcsönhatásba lépő IDE -k : Code::Blocks , Qt Creator , KDevelop , Eclipse , NetBeans , Lazarus , Geany .
gdb program | hibakeresés a "program" programban (a parancshéjból) |
---|---|
szünet fő | állítson be egy töréspontot a mainon |
futás -v | futtassa a letöltött programot a -v kapcsolóval |
bt | visszakövetés (a program összeomlása esetén) |
információs regiszterek | minden regiszter megjelenítése |
szétszedni $db-32, $db+32 | szedje szét a kódot |
szétszerelni fő | szétszerelni a fő funkciót |
set disassembly-flavor intel | Az assembler parancsok megjelenítése intel szintaxisban |
A szegmentálási hiba okának megtalálása után a program szerkesztésre kerül, a hiba kijavításra kerül. A javított programot a GCC -vel újraépítjük és lefutjuk .
A GDB-ben található beágyazott rendszerszimulátorok, különösen az AVR platformhoz , csak a processzormagot támogatják, a vezérlő perifériáit azonban nem.
GNU projekt | ||
---|---|---|
Sztori | ||
Licencek |
| |
Szoftver _ |
| |
Személyiségek |
| |
Egyéb témák |
|