code-yeongyu / code-yeongyu/c11-compiler-zig-omo
[Sisyphus] phase-3 / verify / Wave A — gdb scripted harness (Linux docker)
- Dominant language
- C
- Stars
- 3
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Scope
Build a non-interactive GDB harness that validates debug symbols and line-number accuracy for `zcc`-compiled binaries.
## Deliverables
- `phase3/scripts/gdb-harness.sh` — Linux Docker script that:
1. Compiles a target program with `zcc -g`.
2. Runs `gdb` in batch mode with a command script.
3. Validates `info functions` output against expected symbol list.
4. Validates `addr2line` round-trip for every function address.
- `phase3/scripts/lldb-harness.sh` — macOS wrapper using `lldb` batch mode for the same checks.
## Success Criteria
1. For every `phase1/c11-ref/*_test.c`, the harness reports:
- All function symbols present.
- `addr2line` on every function start address returns the correct file and line.
2. Zero false positives (missing symbols or wrong line mappings).
3. Runs fully non-interactively in CI.
## Dependencies
- Phase 2 Wave 9 (DWARF generation) must be complete.
- Phase 2 Wave 10 (driver with `-g`) must be complete.
## Suggested Role Assignment
`gdb-harness-engineer`
## Test Corpus Expectations
- All `phase1/c11-ref/*_test.c` files are compiled and validated by the harness in CI.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the phase1/c11-ref/*_test.c corpus and inspect the expected phase3/scripts/gdb-harness.sh and phase3/scripts/lldb-harness.sh entry points. Confirm the Phase 2 Wave 9 DWARF and Wave 10 -g dependencies before running the harness in Linux Docker. Done means every test reports the expected symbols and correct addr2line file/line mappings non-interactively in CI, with no false positives.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, docker, linux, shell
- Domain
- build-system, ci-cd, devtools, testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100