Budowanie wersji debug
Ten przewodnik opisuje lokalny przepływ pracy debugowania Lumi przy użyciu skryptów w build/lumi/scripts.
Przepływ pracy ma:
- korzystać z lokalnych artefaktów kompilacji (bez pobierania symboli),
- weryfikować, czy symbole debugowania są rzeczywiście obecne,
- domyślnie uruchamiać GDB w trybie symboli offline.
Wymagania wstępne
- Linux oparty na Debianie (punkt odniesienia projektu: Debian 13)
- Drzewo źródeł Lumi już sklonowane
Jednorazowa konfiguracja GDB (opcjonalna, ale zalecana)
Zainstaluj narzędzia GDB:
sudo apt update
sudo apt install gdb gdbserverOpcjonalna konfiguracja lokalnego logowania:
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
EOFUwaga: lokalne skrypty debugowania Lumi domyślnie wyłączają debuginfod, aby rozwiązywanie symboli pozostało lokalne i powtarzalne.
Szybki start
Z katalogu skryptów:
cd ~/code/lumi-dev/build/lumi/scriptsKompilacja debug + uruchomienie (domyślnie)
Użyj tego w normalnych sesjach debugowania.
bash lumi-debug-local.sh lumi-dev buildTo polecenie:
- buduje Lumi w trybie debug,
- weryfikuje symbole debugowania,
- uruchamia Lumi pod GDB.
Tylko kompilacja debug (na późniejszą sesję TTY/zdalną)
Użyj tego, gdy chcesz teraz skompilować, a uruchomić/debugować później.
bash lumi-build-debug.sh lumi-dev buildKorzystanie z TTY w Linuksie
TTY (konsola tekstowa) to często najpewniejszy sposób debugowania twardych zawieszeń.
- Przełącz się na TTY za pomocą
Ctrl + Alt + F1doCtrl + Alt + F6 - Zaloguj się z poziomu promptu tekstowego
- Wróć do sesji graficznej przez
Ctrl + Alt + F7(lubF2w niektórych systemach)
Dlaczego to ma znaczenie: jeśli sesja pulpitu się zawiesi, TTY często nadal odpowiada, więc możesz podłączyć GDB, przechwycić backtrace i odzyskać użyteczne dane o awarii.
Opcjonalnie: debugowanie zdalne/TTY
Przy twardych zawieszeniach lub blokadzie ekranu użyj gdbserver:
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shNastępnie z TTY (zalecane przy zawieszeniach) lub innego terminala:
gdb /home/mark/code/lumi-dev/bin/lumi-0.1
(gdb) target remote localhost:9999
(gdb) continueDo lokalnego uruchomienia GDB (bez TTY):
bash lumi-debug-launch.sh --repo lumi-devUwaga o wydajności
Kompilacje debug są z założenia wolniejsze. Po zakończeniu debugowania wróć do szybszej kompilacji:
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