Construyendo una versión de depuración
Esta guía describe el flujo de trabajo de depuración local para Lumi usando scripts en build/lumi/scripts.
El flujo de trabajo está diseñado para:
- utilizar artefactos de compilación locales (no se requieren descargas de símbolos),
- verificar que los símbolos de depuración estén realmente presentes,
- Inicie GDB con el modo de símbolo fuera de línea de forma predeterminada.
Requisitos previos
- Linux basado en Debian (línea base del proyecto: Debian 13)
- El árbol fuente de Lumi ya está clonado.
Configuración de GDB por única vez (opcional pero recomendada)
Instalar herramientas GDB:
sudo apt update
sudo apt install gdb gdbserverConfiguración de registro local opcional:
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
EOFNota: Los scripts de depuración locales de Lumi desactivan debuginfod de forma predeterminada para mantener la resolución de los símbolos local y reproducible.
Inicio rápido
Desde el directorio de scripts:
cd ~/code/lumi-dev/build/lumi/scriptsDepuración, compilación + lanzamiento (predeterminado)
Úselo para sesiones de depuración normales.
bash lumi-debug-local.sh lumi-dev buildEste comando:
- construye Lumi en modo de depuración,
- verifica los símbolos de depuración,
- lanza Lumi bajo GDB.
Solo compilación de depuración (para sesión TTY/remota posterior)
Úselo cuando desee compilar ahora e iniciar/depurar más tarde.
bash lumi-build-debug.sh lumi-dev buildUso de TTY en Linux
Las TTY (consolas de texto) suelen ser la forma más confiable de depurar congelaciones totales.
- Cambie a un TTY con
Ctrl + Alt + F1a través deCtrl + Alt + F6 - Inicie sesión desde el mensaje de texto
- Regresar a la sesión gráfica con
Ctrl + Alt + F7(oF2en algunos sistemas)
Por qué esto es importante: si la sesión de escritorio se detiene, un TTY a menudo aún responde, por lo que puede adjuntar GDB, capturar un seguimiento y recuperar datos útiles sobre fallas.
Opcional: Depuración remota/TTY
Para congelaciones totales o bloqueos de pantalla, use gdbserver:
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shLuego desde un TTY (recomendado para escenarios de congelación) u otra terminal:
gdb /home/mark/code/lumi-dev/bin/lumi-0.1
(gdb) target remote localhost:9999
(gdb) continuePara un lanzamiento de GDB local (ruta que no es TTY):
bash lumi-debug-launch.sh --repo lumi-devNota de rendimiento
Las compilaciones de depuración son más lentas por diseño. Cuando haya terminado de depurar, vuelva a una compilación más rápida:
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