A
GDB (más néven GNU Project debugger) egy nyílt forráskódú és ingyenes parancssori szoftver, amely lehetővé teszi a felhasználók és a fejlesztők számára, hogy lássák, mi zajlik "belül" egy másik programban, miközben végrehajtott, vagy miért ütközik össze egy adott alkalmazás egy adott ponttal.
Jellemzők áttekintése
A legfontosabb jellemzők négy különböző technikát tartalmaznak, amelyek segítenek a fejlesztőknek a hibák befogadásában, az alkalmazás elindításában és a működésében esetleg befolyásoló tényezők meghatározásában, a program megállításában meghatározott feltételek mellett, a naplófájlok megvizsgálása során, amikor az alkalmazás összeomlik, egy program egy kísérleti probléma kijavításának kísérlete érdekében, és folytassa a másik hibával kapcsolatos ismereteket. A program támogatja továbbá a programozási nyelvek széles körében írt programok hibakeresését, beleértve a C, C ++, Pascal , Ada, Objective-C és sok más.
Ez egy parancssori alkalmazás
A GNU Project debugger mindig parancssori alkalmazás lesz. Ennek használatához a & ldquo; gdb & rdquo; parancsot egy terminál emulátorban, majd hajtsa végre a & ldquo; help & rdquo; parancs (idézőjelek nélkül) a a gdb prompt. Ezenkívül írja be a & ldquo; segítséget az összes & rdquo; parancsot az összes parancs listájának megtekintéséhez, írja be a "help" parancsot, majd a parancs nevét a teljes dokumentáció megtekintéséhez, írja be a "help" szót, majd egy osztály nevét, hogy megtekinthesse az adott osztály parancsát, írja be az "apropos word" -t a kereséshez a "szóhoz" kapcsolódó parancsokhoz.
A parancsosztályok listája
A & ldquo; help & rdquo; parancsot, a parancsok osztályainak listáját fogja látni, beleértve az aliasokat (más parancsok aliasjait), töréspontokat (a program bizonyos pontokon történő leállítását), adatok (adatok vizsgálata), fájlok (fájlok vizsgálatához) , a belső (fenntartási parancsok), a homályos (homályos jellemzők), a futás (a program futtatásához), a verem (a verem vizsgálatához), a státusz (állapotfelmérések), a támogatás (támogatási lehetőségek), nyomkövetési pontok a program leállítása) és a felhasználó által definiált (felhasználó által definiált parancsok).
Támogatott hardverplatformok és operációs rendszerek
A GDB-t úgy tervezték az offsetről, hogy egy többplatformos alkalmazás legyen, amely a mainstream operációs rendszereken fut, mint például a Microsoft Windows és a legnépszerűbb Linux / UNIX változatok. Mind a 32 bites, mind pedig a 64 bites hardver platformokon támogatott.
Az újdonság ebben a kiadásban:
- PR gdb / 22824 (az új rbreak Python funkció megtévesztő leírása a GDB 8.1 NEWS fájlban)
- PR gdb / 22849 (a ctrl-c nem működik kiterjesztett távvezérlővel)
- PR gdb / 22907 ([Regresszió] gdbserver nem működik csak a fájlnevű binárisokkal)
- PR gdb / 23028 (vcvtpd2dq összeegyeztethetetlen szétszerelése)
- PR gdb / 23053 (Fix -D_GLIBCXX_DEBUG gdb-add-index regresszió)
- PR gdb / 23127 ([AArch64] A GDB nem használható nagy virtuális címeket használó szoftverek hibakeresésére)
- PR szerver / 23158 (a gdbserver már nem működik Windows alatt)
- PR szakaszpontok / 23210 ([8.1 / 8.2 regresszió] Bogus töréspont címe 0xf7fe7dd3-ról 0xfffffffff7fe7dd3-ra módosított)
Az újdonság a 8.1-es verzióban:
- A C ++ függvények töréspontjai alapértelmezés szerint minden hatókörön be vannak állítva (& quot; vad & quot;);
- Támogatás töréspontok beillesztésére a C ++ ABI címkékkel ellátott funkciókkal
- célzás lebegőpontos aritmetikai emuláció az expresszálás során (MPFR 3.1 vagy újabb);
- Különböző Python Scripting fejlesztések;
- jobb rozsda-támogatás; különösen a Trait objektumok mostantól ellenőrizhetők a Rust-kód hibakeresése során;
- A GDB többé nem tesz feltételezéseket a szimbólumok típusáról, hibajavítás nélkül, hogy elkerülje a hibás és gyakran zavaros eredményeket;
- A "enable" és a "disable" parancsok elfogadják a töréspont-helyek tartományát;
- Új 'starti' parancs a program elindításához az első utasításban;
- Új 'rbreak' paranccsal, hogy számos töréspontot egy szabályos kifejezésmintával illesszen be (Python-t igényel);
- A "ptype" parancs most támogatja a mezők offsetjének és méretének egy struct; nyomtatását
- A 'gcore' parancs most támogatja az összes memória leképezést ('-a' parancssori opciót);
- Új billentyűparancsok a TUI egygombos üzemmódban: 'i' a stepi és 'o' a nexti esetén;
- GDBserver fejlesztések:
- Támogatja a környezeti változók GDBserverre történő továbbítását;
- Támogatás a gyengébb folyamatoknak egy meghatározott kezdeti munkakönyvtárral történő indításához;
- Unix rendszereken támogatja a csúszóbevitelt és az alsóbb szintű parancssori érvek változó helyettesítését;
- Különböző befejezett fejlesztések;
- A parancs a "compile" paranccsal történő fordítása és beinjektálása során mostantól konfigurálható;
- Új '- mindenütt' parancssori opció a GDB indításának gyorsításához, amikor az adatok hibakeresésére nincs szükség;
- A következő új natív konfigurációk támogatása:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / kar (arm * - * - freebsd *);
- A következő új célzások támogatása:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / kar (arm * - * - freebsd *);
- OpenRISC ELF (or1k * - * - elf)
- A következő célok és natív konfigurációk eltávolítása támogatása:
- Solaris2 / x86 (i? 86 - * - solaris2. [0-9]);
- Solaris2 / sparc (sparc * - * - solaris2. [0-9]);
Újdonság a verzióban:
- A GDB ezen verziójának létrehozása most a következő eszközöket igényli:
- A C ++ -11 fordító (például GCC 4.8 vagy újabb);
- A GNU 3.81-es vagy újabb verziót készít.
- A változások ebben a kiadásban a következők:
- C ++: Támogatás az értékelt referenciákhoz
- Python szkriptek fejlesztései:
- Új funkciók a futó btrace felvétel indításához, leállításához és eléréséhez
- Rvalue referencia támogatás a gdb.Type-ben.
- A GDB parancs értelmezője:
- A felhasználói parancsok korlátlan számú érvet fogadnak el.
- Az "eval" A parancs most kiterjeszti a felhasználó által definiált argumentumokat.
- DWARF verzió 5 támogatás
- (vegye figyelembe, hogy a .debug_names index még nem támogatott).
- GDB / MI fejlesztések:
- A New -file-list-shared-libraries parancs a programban található megosztott könyvtárak listájának megtekintéséhez.
- Új cél-flash-törlés parancs a flash memória törléséhez
- A natív FreeBSD / mips (mips * - * - freebsd) támogatása
- A következő célok támogatása:
- Synopsys ARC (arc * - * - elf32)
- FreeBSD / mips (mips * - * - freebsd)
- Egyéb fejlesztések:
- A parancssori átirányítás most támogatott az MS-Windows gazdagépeken.
- A szálnevek támogatása az MS-Windows rendszerben.
- A GNU / Linux GNU regiszterének támogatása.
- Támogatás a sparc32 és sparc64 célleírásokhoz.
- A GDB / CLI parancs törli a flash memóriát
- A rdrand és rdseed utasítások rekord / visszajátszás támogatását.
- A következő funkciók támogatását eltávolítottuk:
- A gcj-hez fordított Java-programok támogatása
- A következő konfigurációk támogatása:
- FreeBSD / alpha (alfa * - * - freebsd *)
- GNU / kFreeBSD / alfa (alfa * - * - kfreebsd * -gnu)
Újdonság a 7.9.1-es verzióban:
- PR build / 18033 gdb / iq2000-tdep.c és gdb / compile / compile - * c)
- PR build / 18298 (a "fordítás" parancs nem találja a fordítót, ha a háromcsomóval helyett háromcsatornával konfigurált eszközök vannak)
- PR tui / 18311 (Véletlen SEGV a regiszterek megjelenítéséhez TUI módban)
- PR python / 18299 (kivétel, ha globális szép nyomtatót ír be verbose módban)
- PR python / 18066 (az argumentum "szó" úgy tűnik, összetéveszthető a Command.com teljes szövegében (szöveg, szó))
- PR pascal / 17815 (Fix pascal viselkedés az osztálytáblákhoz a testkamrával)
- PR python / 18285 (a ptype expr-with-xmethod SEGV-t okoz)
Újdonság a 7.9-es verzióban:
- Python szkriptek fejlesztése.
- Forráskód összeállítása és beillesztése az alsóbb osztályba.
- Új parancsok, opciók, kényelmi változók / opciók.
- MIPS SDE támogatás (mips * -sde * -elf *).
- A jelek jobb kezelése a menetes programok hibakeresésénél.
- PR symtab / 17642 ([7.8 regresszió] belső)
- PR binutils / 17677 (_bfd_elf_get_synthetic_symtab O (n ^ 2) összetettségben fut)
- PR gdb / 16215 (SPARC: nem tudja kiszámítani a CFA-t erre a keretre)
- PR gdb / 17525 (cél-async: töréspont parancsok nem futnak, amikor a program fut -x parancsfájlból)
- PR cli / 17828 ([7.8 regresszió] -batch-ex r szünet terminál)
Újdonság -orror: resolve_dynamic_struct: A (z) "TYPE_NFIELDS (típus) & gt; 0" állítás sikertelen.)
Az újdonság a 7.8.1-es verzióban:
- PR python / 17364 (jobb nyomtatónevek szükségesek a bound_registers.py-ben)
- PR build / 17104 (CFLAGS = "-Wall-Wextra" gdb / confgure --with-babeltrace nem sikerült)
- PR gdb / 17345 (babeltrace (1.1.2 és újabb) panaszkodik a GDB által generált ctf adatokra)
- PR build / 17298 (gcore: Nem lehet regisztrálni: nincs ilyen folyamat)
- PR python / 17342 (Az Xmethod Python nem Python 3 kompatibilis)
- PR python / 17355 (Crash a Python keretszűrőkkel, olvashatatlan arg)
- PR guile / 17367 (a céhpálya számítása rossz, amikor a pkg-config parancsfájl argumentumként érkezik)
- PR gdb / 17247 (a gdb lefagy több szálas alkalmazásra)
- PR gdb / 17347 (Regresszió: a GDB leállt futással csatolt eljárással)
- PR gdb / 17407 (regresszió Linux vDSO olvasásra)
- PR-kiszolgáló / 17457 (aarch64 / gdbserver: rossz lebegőpontos regiszterek megjelenítése)
- PR-kiszolgáló / 17487 (állami & gt; dr_control_mirror == 0 sikertelen állítás a gdbserverben a Windows rendszeren)
- PR gdb / 17472 (az annotációkkal, az előtérben történő végrehajtás közben a readline / gdb lefagy)
- PR gdb / 17471 (a háttérparancs ismétlése előtérbe hozza)
- PR cli / 17300 (folyamatosan összeomlik a non-stop módban a folytatással -a & (readline_callback_read_char () nem hívott!))
- PR python / 17372 (a python lóg, amikor megjelenik a súgó ())
- PR python / 17408 (../../gdb/infrun.c:5256: belső hiba: switch_back_to_stepped_thread: Assertion `! schedlock_applies (1) 'sikertelen.)
- Guile szkriptek támogatása
- Python szkriptek fejlesztése.
- Új parancsok, opciók, kényelmi változók / opciók.
- Távoli protokoll és GDBserver bővítmények.
- Új célkonfigurációk (PowerPC64 GNU / Linux kis-endian).
- btrace fejlesztések.
- ISO C99 változó hosszúságú automatikus tömbök támogatása.
- A & quot; összehasonlító szakaszok & quot; A parancs most minden célra működik.
- A & quot; target natív & quot; parancs most kapcsolódik a natív célhoz.
Az újdonság
Újdonság a 7.7-es verzióban:
- Enhanced Python scripting támogatás.
- Néhány C ++ fejlesztés.
- Új parancsok, opciók, kényelmi változók / opciók.
- Több GDB / MI új parancs és továbbfejlesztés.
- Távoli protokoll és GDBserver bővítmények.
- Új célkonfigurációk (Nios II, TI MSP430).
- GDB Windows x64 adatátviteli támogatás.
- A SystemTap SDT próbák támogatják az AArch64 GNU / Linux rendszert.
- CTF (közös nyomkövetési formátum) támogatás.
- Új szkriptek gcore és gdb-add-index.sh.
- Javított arm * -linux rekord / visszajátszás támogatása.
- Az a.out NetBSD és az OpenBSD elavult konfigurációinak eltávolítása. Ezeknek a konfigurációknak az ELF változatai továbbra is támogatottak.
- A & quot; set | show remotebaud & quot; parancsok elavultak a "show | show serial baud" javára.
Az újdonság a 7.6.2-es verzióban:
- PR breakpoint / 16251 villa)
- PR gdb / 16303 (A GDB 7.6.1 nem működik a 2.28 binutilokkal a MIPS16 és a microMIPS szolgáltatással)
Az újdonság a 7.6.1-es verzióban:
- PR tdep / 15420 (Nem indítható menetes programok az x86-solaris legújabb verzióin - Solaris 10, 10 vagy újabb verzió)
- PR távoli / 15455 (QTro távoli csomag törött)
- PR build / 15476 (Építsen hibát a hiányos enum típus miatt utils.h)
- PR-kiszolgáló / 15594 (a 64 x 32-es x86-os gps-os kiszolgálót nem támogatja a cím 64 bitesre)
- PR szerver / 15075 (a dprintf a "következő" kifejezéssel )
- PR szerver / 15434 (a dprintf szinkron "folytatódik" még non-stop üzemmódban is)
- PR tui / 14880 (a megosztott regiszterelrendezésekben, a felfelé az érték értékének c) értékét jelenti.
- PR c ++ / 15519 (GDB 7.6 94x lassabb, mint a GDB 7.5.1 egy bizonyos core fájllal)
- PR gdb / 15837 (a GDB kinyomtatja a helyi változók belépési értékeit)
- PR gdb / 15415 (a gdb szimbolikus linkeket old meg az argv [0] eljuttatásakor)
- PR cli / 15603 (a CTRL-C már nem tudja megszakítani a rosszabbat)
- PR gdb / 15604 (gdbserver socket 7.5-es regresszió)
Az újdonság a 7.5-ös verzióban:
- Nyelvtámogatás.
- Új célok (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64).
- Több Python szkript fejlesztés.
- SDT (Static Defined Tracing) szondák támogatják a SystemTap szondákat.
- GDBserver fejlesztések (stdio kapcsolatok, a töréspont-feltételek cél-oldali kiértékelése, távoli protokollok fejlesztése).
- Egyéb különféle fejlesztések (leállítás, ha a megosztott könyvtár betöltő / betöltetlen, dinamikus printf, stb.).
- Az ARM fordított hibakeresése
- A bináris "gdbtui" felhagytak és már nem építhetők. A & quot; gdb -tui & quot; helyett.
Az újdonság a 7.4-es verzióban:
- Az érdekes funkciókat és fájlokat mostantól kihagyhatjuk, amikor a & quot; kihagyás funkció & quot; és a "skip file" parancsokat.
- Hozzáadták a távoli célmegfelelőségi figyelőpont maximális hosszúsághatárának beállításához és eléréséhez szükséges parancsokat.
- A Python szkriptje jelentősen javult.
- Sok más javítást, hibajavítást és általános változtatást hajtottak végre.
Újdonság a 7.1-es verzióban:
- Új célok támogatása (beleértve a szimulátort is):
- Xilinx MicroBlaze
- Renesas RX
- A legfontosabb új funkciók:
- Több program hibakeresése, amely lehetővé teszi a hibakereső számára, hogy többet tudjon kezelni, mint
- egy program ugyanazon a GDB munkameneten belül.
- Független végrehajtható (PIE) hibakeresés.
- Számos javítással és hibajavítással is rendelkezik, köztük:
- A Python támogatása kiterjesztésre került.
- C ++ támogatási javítások (névtér, leadott operátorok, hibajavítások)
- A Tracepoint támogatásának javítása.
- Feldolgozási feljegyzések javítása (mentési / helyreállítási végrehajtási napló, hardver
- figyelőfelügyeleti támogatás.
- Távoli protokoll-fejlesztések (Linux kernel hibakeresés, új csomagok
- a nyomkövetési támogatáshoz)
Hozzászólás nem található