Construire une version de débogage
Ce guide décrit le workflow de débogage local pour Lumi à l’aide des scripts dans build/lumi/scripts.
Le workflow est conçu pour :
- utiliser des artefacts de build locaux (aucun téléchargement de symboles requis),
- vérifier que les symboles de débogage sont bien présents,
- lancer GDB avec le mode symbole hors ligne par défaut.
Prérequis
- Linux basé sur Debian (base de référence du projet : Debian 13)
- Arborescence source Lumi déjà clonée
Configuration GDB unique (facultatif mais recommandé)
Installez les outils GDB :
sudo apt update
sudo apt install gdb gdbserverConfiguration facultative de la journalisation locale :
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
EOFRemarque : les scripts de débogage locaux de Lumi désactivent debuginfod par défaut pour conserver la résolution des symboles locale et reproductible.
Démarrage rapide
Depuis le répertoire des scripts :
cd ~/code/lumi-dev/build/lumi/scriptsBuild de débogage + lancement (par défaut)
Utilisez cette commande pour les sessions de débogage habituelles.
bash lumi-debug-local.sh lumi-dev buildCette commande :
- construit Lumi en mode débogage,
- vérifie les symboles de débogage,
- lance Lumi sous GDB.
Build de débogage uniquement (pour une session TTY/distance ultérieure)
Utilisez cette commande lorsque vous souhaitez construire maintenant et lancer/déboguer plus tard.
bash lumi-build-debug.sh lumi-dev buildUtilisation des TTY sous Linux
Les TTY (consoles texte) sont souvent le moyen le plus fiable de déboguer les blocages complets.
- Passez à un TTY avec
Ctrl + Alt + F1àCtrl + Alt + F6 - Connectez-vous depuis l’invite texte
- Revenez à la session graphique avec
Ctrl + Alt + F7(ouF2sur certains systèmes)
Pourquoi c’est important : si la session de bureau est bloquée, un TTY répond souvent encore, ce qui vous permet d’attacher GDB, de capturer une trace arrière et de récupérer des données de crash utiles.
Facultatif : débogage à distance / TTY
Pour les blocages complets ou les verrouillages d’affichage, utilisez gdbserver :
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shPuis depuis un TTY (recommandé pour les scénarios de blocage) ou un autre terminal :
gdb /home/mark/code/lumi-dev/bin/lumi-0.1
(gdb) target remote localhost:9999
(gdb) continuePour un lancement GDB local (sans TTY) :
bash lumi-debug-launch.sh --repo lumi-devNote sur les performances
Les builds de débogage sont plus lents par conception. Une fois le débogage terminé, repassez à un build plus rapide :
cd ~/code/lumi-dev/build/lumi/scripts
# Réinitialisation complète en release pour tous les composants principaux
bash lumi-debug-reset-release.sh lumi-dev
# Variante locale plus rapide (facultatif)
bash lumi-build-script.sh --scope build --dir lumi-dev --type debugoptimized