디버그 버전 빌드
이 가이드는 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