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.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.2 plattform.
Pakkeinformasjon
-
Nedlasting (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-15.1.tar.xz
-
Nedlasting MD5 sum: 494e3beaac44e66367c3e443a4414529
-
Nedlastingsstørrelse: 23 MB
-
Estimert diskplass som kreves: 806 MB (legg til 1.0 GB for
dokumenter; legg til 720 MB for tester)
-
Estimert byggetid: 0.9 SBU (legg til 0.4 SBU for dokumenter;
se nedenfor for 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.80.1 (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.
Tip
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.
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.1 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-15.1
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.