Создание отладочной версии
В этом руководстве описывается рабочий процесс локальной отладки для 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 (текстовые консоли) часто являются наиболее надежным способом устранения сильных зависаний.
- Переключитесь на телетайп с помощью
Ctrl + Alt + F1черезCtrl + Alt + F6. - Войдите в систему из текстовой подсказки.
- Вернитесь в графический сеанс с помощью
Ctrl + Alt + F7(илиF2в некоторых системах)
Почему это важно: если сеанс рабочего стола завис, TTY часто все еще отвечает, поэтому вы можете подключить GDB, записать обратную трассировку и восстановить полезные данные о сбоях.
Необязательно: удаленная отладка/отладка TTY
В случае сильного зависания или блокировки дисплея используйте gdbserver:
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shЗатем из телетайпа (рекомендуется для сценариев зависания) или другого терминала:
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