デバッグ版のビルド
このガイドでは、build/lumi/scripts 内のスクリプトを使った Lumi の ローカルデバッグワークフロー を説明します。
このワークフローは次の目的で設計されています:
- ローカルビルド成果物を使う(シンボルのダウンロードは不要)
- デバッグシンボルが実際に含まれていることを確認する
- デフォルトでオフラインシンボルモードの GDB を起動する
前提条件
- Debian ベースの Linux(プロジェクト基準: 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 をデバッグモードでビルドする
- デバッグシンボルを検証する
- GDB 下で Lumi を起動する
デバッグビルドのみ(後で TTY/リモートセッション用)
今ビルドして、起動やデバッグは後で行う場合に使います。
bash lumi-build-debug.sh lumi-dev buildLinux で TTY を使う
TTY(テキストコンソール)は、ハードフリーズのデバッグで最も信頼できる方法であることが多いです。
Ctrl + Alt + F1からCtrl + Alt + F6で TTY に切り替える- テキストプロンプトからログインする
Ctrl + Alt + F7(一部のシステムではF2)でグラフィカルセッションに戻る
なぜ重要か: デスクトップセッションが固まっても TTY は応答することが多く、GDB を接続してバックトレースを取得し、有用なクラッシュデータを回収できます。
オプション: リモート / TTY デバッグ
ハードフリーズやディスプレイのロックアップには gdbserver を使います:
cd ~/code/lumi-dev/build/lumi/scripts
bash gdbserver.shTTY(フリーズ時は推奨)または別のターミナルから:
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