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
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
six-1.16.0 (Python 3 modul, kreves ved kjøring for
å bruke GDB skript fra ulike LFS/BLFS pakker med Python 3
installert i LFS)
Valgfri
Doxygen-1.12.0, GCC-14.2.0 (ada, gfortran, og go
er brukt for tester), Guile-3.0.10, rustc-1.82.0 (brukt for noen tester),
Valgrind-3.24.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
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.