1.7 KiB
1.7 KiB
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
{
"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
{
"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/