GDB-15.2

Introduksjon til GDB

GDB, GNU Project debugger, lar deg se hva som skjer «på innsiden» i et annet program mens det kjører -- eller hva et annet program gjorde i det øyeblikket det krasjet. Merk at GDB er mest effektiv ved sporing av programmer og biblioteker som ble bygget med feilsøkingssymboler og ikke er strippet.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

  • Nedlasting (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-15.2.tar.xz

  • Nedlasting MD5 sum: 85c722e2f2baea2b7820a6a7eaea2ce8

  • Nedlastingsstørrelse: 23 MB

  • Estimert diskplass som kreves: 823 MB (legg til 788 MB for dokumenter; legg til 738 MB for tester)

  • Estimert byggetid: 0.9 SBU (legg til 0.4 SBU for dokumenter; legg til 6.3 SBU tester; alle bruker parallellisme=8)

GDB Avhengigheter

Anbefalt kjøretidsavhengighet

Valgfri

Doxygen-1.12.0, GCC-14.2.0 (ada, gfortran, og go er brukt for tester), Guile-3.0.10, rustc-1.81.0 (brukt for noen tester), Valgrind-3.23.0, og SystemTap (kjøretid, brukt til tester)

Installasjon av GDB

Installer GDB ved å kjøre følgende kommandoer:

mkdir build &&
cd    build &&

../configure --prefix=/usr          \
             --with-system-readline \
             --with-python=/usr/bin/python3 &&
make

Eventuelt for å bygge API dokumentasjonen ved hjelp av Doxygen-1.12.0, kjør:

make -C gdb/doc doxy

Det anbefales ikke å kjøre testene. Resultatene varierer mye avhengig av systemarkitekturen og hvilke valgfrie avhengigheter som er installert og hvilken versjon av gcc som brukes. På ett testet system var det 140 uventede feil (av over 108 000 tester) og på et annet system var det "bare" 32 uventede feil. Tiden for å kjøre testene varierer fra ca. 6 SBU til over 15 SBU ved bruk av -j8. Dette avhenger på antall tester som får tidsavbrudd og andre faktorer.

[Tips]

Tips

Med en vanlig make check, er det mange advarsel meldinger om en manglende global konfigurasjonsfil. Disse kan unngås ved å kjøre touch global.exp og forberede make check kommandoen med DEJAGNU=$PWD/global.exp. I tillegg kan testene bruke mindre tid betraktelig ved å bruke make valget "-j<N>" hvor <N> er antall kjerner på systemet ditt.

For å teste resultatene uansett, utsted:

pushd gdb/testsuite &&
make  site.exp      &&
echo  "set gdb_test_timeout 30" >> site.exp &&
make check 2>1 | tee gdb-check.log
popd

Se gdb/testsuite/README og TestingGDB. Det er mange ytterligere problemer med testpakken:

  • Rene mapper er nødvendig hvis du kjører testene på nytt. For den grunnen, lag en kopi av den kompilerte kildekodemappen før testene i tilfelle du må kjøre testene på nytt.

  • Resultatene avhenger av installerte kompilatorer.

  • På noen AMD baserte systemer, over 200 ekstra tester kan mislykkes på grunn av en forskjell i trådimplementeringen på disse CPUene.

  • For gdb-15.2, ved bruk av en Intel i7-14700K, var det 118 uventede feil av over 116 000 tester.

Nå, som root bruker:

make -C gdb install &&
make -C gdbserver install

Hvis du har bygget API dokumentasjonen, er den nå i gdb/doc/doxy. Du kan installere den (som root bruker):

install -d /usr/share/doc/gdb-15.2 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-15.2

Parameterforklaringer

--with-system-readline: Denne bryteren tvinger GDB å bruke kopien av Readline installert i LFS.

--with-python=/usr/bin/python3: Denne bryteren tvinger GDB å bruke Python 3.

Innhold

Installerte Programmer: gcore, gdb, gdbserver, and gdb-add-index
Installert Bibliotek: libinproctrace.so
Installerte Mapper: /usr/{include,share}/gdb and /usr/share/doc/gdb-15.2

Korte Beskrivelser

gcore

genererer en kjernedump av et program som kjører

gdb

er GNU Debugger

gdbserver

er en ekstern server for GNU debugger (den tillater programmer å feilsøkes fra en annen maskin)

gdb-add-index

Tillater å legge til indeksfiler til ELF binærfiler. Dette setter fart på gdb starting av store programmer.

libinproctrace.so

inneholder funksjoner for sporingsmiddelet i prosessen. Agenten gjør det mulig å installere raske sporingspunkter, og viser statiske sporpunkter markører, sondering av statiske sporingsmarkører og startsporing overvåkning.