Bygga en felsökningsversion
Den här guiden beskriver lokalt felsökningsarbetsflöde för Lumi med skript i build/lumi/scripts.
Arbetsflödet är utformat för att:
- använd lokala byggartefakter (inga symbolnedladdningar krävs),
- verifiera att felsökningssymboler faktiskt finns,
- Starta GDB med offline-symbolläge som standard.
Förutsättningar
- Debian-baserat Linux (projektets baslinje: Debian 13)
- Lumi-källträdet redan klonat
Engångsinställningar för GDB (valfritt men rekommenderas)
Installera GDB-verktyg:
sudo apt update
sudo apt install gdb gdbserverValfri lokal loggningsinställning:
mkdir -p ~/code/gdb_logs
cat > ~/.gdbinit <<'EOF'
set logging file ~/code/gdb_logs/gdb_log.txt
set logging enabled on
set logging overwrite on
EOFObs: Lumis lokala felsökningsskript inaktiverar debuginfod som standard för att hålla symbolupplösningen lokal och reproducerbar.
Snabbstart
Från skriptkatalogen:
cd ~/code/lumi-dev/build/lumi/scriptsDebug Build + Launch (standard)
Använd detta för normala felsökningssessioner.
bash lumi-debug-local.sh lumi-dev buildDetta kommando:
- bygger Lumi i felsökningsläge,
- verifierar felsökningssymboler,
- lanserar Lumi under GDB.
Debug Build Only (för senare TTY/fjärrsession)
Använd detta när du vill bygga nu och starta/felsöka senare.
bash lumi-build-debug.sh lumi-dev buildAnvända TTY i Linux
TTY:er (textkonsoler) är ofta det mest pålitliga sättet att felsöka hårda frysningar.
- Byt till en TTY med
Ctrl + Alt + F1tillCtrl + Alt + F6 - Logga in från textprompten
- Återgå till den grafiska sessionen med
Ctrl + Alt + F7(ellerF2på vissa system)
Varför detta är viktigt: om skrivbordssessionen har avstannat svarar en TTY ofta fortfarande, så att du kan bifoga GDB, fånga en bakåtspårning och återställa användbar kraschdata.
Valfritt: Fjärr/TTY-felsökning
För hårda frysningar eller skärmlåsning, använd gdbserver:
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shSedan från en TTY (rekommenderas för frysningsscenarier) eller en annan terminal:
gdb /home/mark/code/lumi-dev/bin/lumi-0.1
(gdb) target remote localhost:9999
(gdb) continueFör en lokal GDB-lansering (icke-TTY-sökväg):
bash lumi-debug-launch.sh --repo lumi-devAnmärkning om prestanda
Felsökningsbyggen är långsammare till sin design. När du är klar med felsökningen byter du tillbaka till en snabbare build:
cd ~/code/lumi-dev/build/lumi/scripts
# Full release reset of all major components
bash lumi-debug-reset-release.sh lumi-dev
# Optional faster local-only variant
bash lumi-build-script.sh --scope build --dir lumi-dev --type debugoptimized