GNU Debugger | |
---|---|
Tyyppi | debuggeri ja GNU-paketti [d] |
Tekijä | GNU projekti |
Kehittäjä | Yhteisö |
Sisään kirjoitettu | C ja kaavio |
Käyttöjärjestelmä | GNU/Linux [3] , BSD [3] , Microsoft Windows [3] ja macOS [3] |
Käyttöliittymäkielet | Englanti |
Ensimmäinen painos | 1986 [1] |
uusin versio |
|
Lisenssi | GPL 3.0+ [3] |
Verkkosivusto | gnu.org/software/… ( englanti) |
Mediatiedostot Wikimedia Commonsissa |
GNU Debugger on kannettava GNU - projektin debuggeri , joka toimii monissa UNIX - tyyppisissä järjestelmissä ja voi korjata monia ohjelmointikieliä, mukaan lukien C , C++ , Free Pascal , FreeBASIC , Ada , Fortran ja Rust . GDB on ilmainen ohjelmisto , jolla on GPL -lisenssi .
Alunperin kirjoittanut Richard Stallman vuonna 1988 . Se perustui BSD - jakelun mukana tulleeseen DBX -debuggeriin . Vuodesta 1990 vuoteen 1993 _ projektia tuki John Gilmour ollessaan Cygnus Solutionsin palveluksessa . Kehitystä koordinoi tällä hetkellä Free Software Foundationin nimittämä GDB:n ohjauskomitea . [neljä]
GDB tarjoaa kattavat työkalut tietokoneohjelmien suorittamisen valvontaan ja ohjaukseen. Käyttäjä voi muuttaa ohjelmien sisäisiä muuttujia ja jopa kutsua toimintoja ohjelman normaalista käyttäytymisestä riippumatta. GDB voi korjata suoritettavia tiedostoja a.out- , COFF-muodossa (mukaan lukien Windows-suoritettavat tiedostot), ECOFF- , XCOFF- , ELF- , SOM- -, käyttää virheenkorjaustietoja stabs- , COFF- , ECOFF- , DWARF- , DWARF2- muodossa [6] . DWARF2-muoto tarjoaa parhaat virheenkorjausominaisuudet.
GDB:tä kehitetään aktiivisesti. Esimerkiksi versio 7.0 lisäsi tuen "käännettävälle virheenkorjaukselle", jonka avulla voit kelata suoritusprosessia taaksepäin nähdäksesi, mitä tapahtui. Myös versiossa 7.0 lisättiin Python -komentosarjan tuki .
Muita virheenkorjaustyökaluja on luotu toimimaan GDB:n kanssa, kuten muistivuotoilmaisimet.[ määritä ] .
GDB voidaan kääntää tukemaan sovelluksia useille kohdealustoille ja vaihtaa niiden välillä virheenkorjausistunnon aikana. GDB:n ( 2003 ) tukemat prosessorit : Alpha , ARM , H8/300 , System/370 , System/390 , x86 ja 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 ja MCORE , SN10200 , -0KN103 , 0KN103 , 0KN103 , 0KN10 ,0 Z8000 (Uudemmat julkaisut eivät todennäköisesti tue joitain näistä.) Kohdealustoja, joilla GDB:tä ei voida ajaa, erityisesti sulautettuja järjestelmiä , voidaan tukea sisäänrakennetulla simulaattorilla ( ARM , AVR -prosessorit ) tai niille voidaan kääntää sovelluksia erityisiä rutiineja, jotka tarjoavat etävirheenkorjauksen kehittäjän tietokoneessa olevan GDB:n ohjauksessa. Virheenkorjauksen syöttötiedosto ei pääsääntöisesti ole flash-kelpoinen binääritiedosto, vaan tiedosto jossakin muodossa, joka tukee virheenkorjaustietoja, ensisijaisesti ELF, josta flash-binäärikoodi puretaan myöhemmin erityisillä apuohjelmilla.
Etävirheenkorjauksessa GDB ajetaan yhdellä koneella ja virheenkorjattava ohjelma toisessa. Viestintä tapahtuu erityisen protokollan mukaisesti sarjaportin tai TCP / IP:n kautta. Protokolla vuorovaikutukseen debuggerin kanssa on GDB-kohtainen, mutta tarvittavien aliohjelmien lähdekoodi sisältyy virheenkorjausarkistoon. Vaihtoehtoisesti GDB-paketin gdbserver [7] -ohjelma, joka käyttää samaa protokollaa, voidaan ajaa kohdealustalla suorittamaan matalan tason toimintoja, kuten keskeytyspisteiden asettaminen ja pääsy rekistereihin ja muistiin.
Samaa tilaa käytetään vuorovaikutuksessa sisäänrakennetun Linux-ytimen virheenkorjausohjelman KGDB kanssa. Sen avulla kehittäjä voi korjata ytimen virheitä tavallisen ohjelman tavoin: asettaa keskeytyskohtia, astua koodin läpi, tarkastella muuttujia. Sisäänrakennettu debuggeri vaatii kaksi konetta, jotka on kytketty Ethernetin tai sarjakaapelin kautta, joista toisessa on GDB ja toisessa ytimen virheenkorjaus.
Johtavien FSF -kehittäjien ideologian [8] mukaisesti GDB tarjoaa oman graafisen käyttöliittymänsä sijaan mahdollisuuden muodostaa yhteyden ulkoisiin IDE :ihin , jotka ohjaavat graafisia kuoria tai käyttävät konsolin vakiotekstirajapintaa. Voit liittää ulkoisiin ohjelmiin käyttämällä tekstimerkkijonokieltä (kuten tehtiin DDD -kuoren ensimmäisissä versioissa ), tekstinohjauskieltä tai Python-kielengdb/mi käyttöliittymää .
Emacsiin luotiin liitännät, kuten DDD , cgdb , GDBtk/Insight ja "GUD-tila" . IDE :t , jotka voivat olla vuorovaikutuksessa GDB:n kanssa, ovat Code::Blocks , Qt Creator , KDevelop , Eclipse , NetBeans , Lazarus , Geany .
gdb ohjelma | virheenkorjaus ohjelmassa "ohjelma" (komentotulkista) |
---|---|
katkaista pää | aseta keskeytyspiste päälaitteeseen |
ajaa -v | Suorita ladattu ohjelma -v-vaihtoehdolla |
bt | backtrace (jos ohjelma kaatuu) |
tietorekisterit | näytä kaikki rekisterit |
purkaa $pc-32, $pc+32 | purkaa koodi |
purkaa pää | purkaa päätoiminto |
set disassembly-maku intel | näytä assembler-komennot intel-syntaksissa |
Kun segmentointivirheen syy on löydetty, ohjelmaa muokataan ja virhe korjataan. Korjattu ohjelma rakennetaan uudelleen GCC :llä ja ajetaan.
GDB:hen sisältyvät sulautetut järjestelmäsimulaattorit, erityisesti AVR -alustalle , voivat tukea vain prosessorin ydintä, mutta eivät ohjaimen oheislaitteita.
GNU projekti | ||
---|---|---|
Tarina | ||
Lisenssit |
| |
Ohjelmisto_ _ |
| |
Persoonallisuudet |
| |
Muut aiheet |
|