Сборка отладочной версии
В этом руководстве описан локальный рабочий процесс отладки Lumi с использованием скриптов в build/lumi/scripts.
Процесс предназначен для того, чтобы:
- использовать локальные артефакты сборки (без загрузки символов),
- проверять, что символы отладки действительно присутствуют,
- по умолчанию запускать GDB в автономном режиме символов.
Предварительные требования
- Linux на базе Debian (базовая версия проекта: Debian 13)
- Дерево исходников Lumi уже клонировано
Одноразовая настройка GDB (необязательно, но рекомендуется)
Установите инструменты GDB:
sudo apt update
sudo apt install gdb gdbserverНеобязательная настройка локального логирования:
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
EOFПримечание: локальные скрипты отладки Lumi по умолчанию отключают debuginfod, чтобы разрешение символов оставалось локальным и воспроизводимым.
Быстрый старт
Из каталога скриптов:
cd ~/code/lumi-dev/build/lumi/scriptsОтладочная сборка + запуск (по умолчанию)
Используйте это для обычных сеансов отладки.
bash lumi-debug-local.sh lumi-dev buildЭта команда:
- собирает Lumi в режиме отладки,
- проверяет символы отладки,
- запускает Lumi под GDB.
Только отладочная сборка (для последующего сеанса TTY/удалённого)
Используйте это, если хотите собрать сейчас, а запустить/отладить позже.
bash lumi-build-debug.sh lumi-dev buildИспользование TTY в Linux
TTY (текстовые консоли) часто — самый надёжный способ отладки жёстких зависаний.
- Переключитесь на TTY с помощью
Ctrl + Alt + F1черезCtrl + Alt + F6 - Войдите через текстовую подсказку
- Вернитесь в графический сеанс с помощью
Ctrl + Alt + F7(илиF2в некоторых системах)
Почему это важно: если сеанс рабочего стола завис, TTY часто всё ещё отвечает, и вы можете подключить GDB, снять backtrace и получить полезные данные о сбое.
Необязательно: удалённая отладка/TTY
При жёстких зависаниях или блокировке дисплея используйте gdbserver:
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shЗатем из TTY (рекомендуется при зависаниях) или другого терминала:
gdb /home/mark/code/lumi-dev/bin/lumi-0.1
(gdb) target remote localhost:9999
(gdb) continueДля локального запуска GDB (без TTY):
bash lumi-debug-launch.sh --repo lumi-devПримечание о производительности
Отладочные сборки по замыслу медленнее. Когда отладка завершена, вернитесь к более быстрой сборке:
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