GNU Debugger | |
---|---|
Sorts | debugger och GNU-paket [d] |
Författare | GNU-projekt |
Utvecklaren | gemenskap |
Skrivet i | C och Schema |
Operativ system | GNU/Linux [3] , BSD [3] , Microsoft Windows [3] och macOS [3] |
Gränssnittsspråk | engelsk |
Första upplagan | 1986 [1] |
senaste versionen | |
Licens | GPL 3.0+ [3] |
Hemsida | gnu.org/software/… ( engelska) |
Mediafiler på Wikimedia Commons |
GNU Debugger är en bärbar GNU -projektfelsökning som körs på många UNIX -liknande system och kan felsöka många programmeringsspråk, inklusive C , C++ , Free Pascal , FreeBASIC , Ada , Fortran och Rust . GDB är fri programvara licensierad under GPL .
Ursprungligen skriven 1988 av Richard Stallman . Den var baserad på DBX-felsökningen som följde med BSD- distributionen . Från 1990 till 1993 _ projektet fick stöd av John Gilmour medan han var hos Cygnus Solutions . Utvecklingen koordineras för närvarande av GDB-styrkommittén som utsetts av Free Software Foundation . [fyra]
GDB erbjuder omfattande verktyg för att övervaka och kontrollera exekveringen av datorprogram. Användaren kan ändra de interna variablerna för program och till och med anropa funktioner, oavsett programmets normala beteende. GDB kan felsöka körbara filer i formatet a.out , COFF (inklusive Windows körbara filer), ECOFF , XCOFF , ELF , SOM , använd felsökningsinformation i formaten stabs , COFF , ECOFF , DWARF , DWARF2 [6] . DWARF2-formatet ger de bästa felsökningsmöjligheterna.
GDB utvecklas aktivt. Till exempel har version 7.0 lagt till stöd för "reversibel debugging", vilket gör att du kan spola tillbaka exekveringsprocessen för att se vad som hände. Även i version 7.0 lades stöd för Python -skript till .
Andra felsökningsverktyg har skapats för att fungera med GDB, såsom minnesläckagedetektorer.[ specificera ] .
GDB kan kompileras för att stödja applikationer för flera målplattformar och växla mellan dem under en felsökningssession. Processorer som stöds av GDB ( 2003 ): Alpha , ARM , H8/300 , System/370 , System/390 , x86 och 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 MN 10200 MN 10200 MN 10200 NS 5 , Y Z8000 (Nyere utgåvor kommer förmodligen inte att stödja vissa av dessa.) Målplattformar där GDB inte kan köras, i synnerhet inbyggda system , kan stödjas med hjälp av den inbyggda simulatorn ( ARM , AVR -processorer ) eller applikationer för dem kan kompileras med speciella rutiner som ger fjärrfelsökning under kontroll av GDB som körs på utvecklarens dator. Indatafilen för felsökning är som regel inte en flashbar binär fil, utan en fil i ett av formaten som stöder felsökningsinformation, främst ELF, från vilken den binära koden för flashning sedan extraheras med hjälp av speciella verktyg.
Med fjärrfelsökning körs GDB på en maskin och programmet som felsöks körs på en annan. Kommunikation utförs enligt ett speciellt protokoll via en seriell port eller TCP/IP. Protokollet för att interagera med felsökaren är specifikt för GDB, men källkoden för de nödvändiga subrutinerna ingår i felsökningsarkivet. Alternativt kan programmet gdbserver [7] från GDB-paketet som använder samma protokoll köras på målplattformen för att utföra lågnivåfunktioner som att ställa in brytpunkter och komma åt register och minne.
Samma läge används för att interagera med den inbyggda Linux- kärnfelsökaren KGDB. Med den kan en utvecklare felsöka kärnan som ett vanligt program: ställa in brytpunkter, stega igenom koden, visa variabler. Den inbyggda debuggern kräver två maskiner anslutna via Ethernet eller en seriell kabel, en som kör GDB och den andra som kör kärnan för att felsökas.
I enlighet med ideologin hos de ledande FSF- utvecklarna [8] ger GDB, istället för sitt eget grafiska användargränssnitt, möjligheten att ansluta till externa IDE:er som styr grafiska skal eller använder ett standardgränssnitt för konsoltext. För att samverka med externa program kan du använda ett textsträngsspråk (som gjordes i de första versionerna av DDD- skalet ), ett textkontrollspråk gdb/mieller ett gränssnitt till Python-språket .
Gränssnitt som DDD , cgdb , GDBtk/Insight och "GUD mode" i Emacs skapades . IDE som kan interagera med GDB är Code::Blocks , Qt Creator , KDevelop , Eclipse , NetBeans , Lazarus , Geany .
gdb-program | felsöka programmet "program" (från kommandoskalet) |
---|---|
bryta huvud | ställ in en brytpunkt på main |
köra -v | kör det nedladdade programmet med alternativet -v |
bt | bakåtspårning (vid programkrasch) |
info register | visa alla register |
disass $pc-32, $pc+32 | plocka isär koden |
demontera huvudet | demontera huvudfunktionen |
set demontering-smak intel | visa assembler-kommandon i intel-syntax |
Efter att orsaken till segmenteringsfelet hittats, redigeras programmet, felet korrigeras. Det korrigerade programmet byggs om med GCC och körs.
Inbyggda systemsimulatorer som ingår i GDB, särskilt för AVR- plattformen , kan bara stödja processorkärnan, men inte kringutrustningen för styrenheten.
GNU-projekt | ||
---|---|---|
Berättelse | ||
Licenser |
| |
Programvara _ |
| |
Personligheter |
| |
Andra ämnen |
|