# component_architecture_symbols.md - **Stella Ops Symbols** (2025Q4) > Symbol resolution and debug information management. > **Scope.** Library and service architecture for **Symbols**: managing debug symbols, build IDs, and symbol-to-package mappings for reachability analysis. --- ## 0) Mission & boundaries **Mission.** Provide **symbol resolution infrastructure** for native binary analysis. Map symbols to packages, manage debug information, and support stripped binary analysis. **Boundaries.** * Symbols **resolves and maps** symbols; execution is handled by Scanner. * Debug symbols are **optional**; stripped binaries use heuristics. * Supports **offline symbol stores** for air-gapped operation. --- ## 1) Solution & project layout ``` src/Symbols/ ├─ StellaOps.Symbols/ # Core symbol resolution │ ├─ Services/ │ │ ├─ ISymbolResolver.cs │ │ └─ BuildIdResolver.cs │ └─ Models/ │ ├─ SymbolInfo.cs │ └─ BuildIdMapping.cs │ └─ Integration with Scanner: └─ src/Scanner/__Libraries/StellaOps.Scanner.Symbols.Native/ ``` --- ## 2) Contracts & data model ### 2.1 Symbol Info ```json { "symbolId": "sha256:abc123", "name": "_ZN3foo3barEv", "demangledName": "foo::bar()", "sourceFile": "src/foo.cpp", "lineNumber": 42, "buildId": "abc123def456", "packagePurl": "pkg:deb/debian/libfoo@1.2.3" } ``` ### 2.2 Build ID Mapping ```json { "buildId": "abc123def456", "path": "/usr/lib/libfoo.so.1", "packagePurl": "pkg:deb/debian/libfoo@1.2.3", "debugPath": "/usr/lib/debug/.build-id/ab/c123def456.debug" } ``` --- ## Related Documentation * Scanner native analysis: `../scanner/architecture.md` * Reachability: `../../reachability/`