code-yeongyu / code-yeongyu/c11-compiler-zig-omo

[Sisyphus] phase-3 / verify / Wave A — gdb scripted harness (Linux docker)

Open
#27 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.