Public C++ library API for symbolizing/deobfuscating traces
- Dominant language
- C++
- Stars
- 6.5k
- Forks
- 868
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 218
Description
### Feature request
The `traceconv bundle` command does an opaque "take a trace, produce an
enriched trace" operation: it symbolizes native frames, applies ProGuard/R8
deobfuscation, and emits a TAR containing the enriched output.
The implementation already exists as a C++ entry point
(`TraceToBundle()` in `src/traceconv/trace_to_bundle.h`, with `EnrichTrace()`
in `src/trace_processor/util/trace_enrichment/trace_enrichment.h` doing the
actual work), but it lives under `src/` and is not part of the public API.
### What we'd like
An `include/` C++ API that takes:
- A path to (or bytes of) an input trace.
- A `BundleContext`-equivalent (explicit symbol paths, ProGuard mapping
specs, flags).
...and returns the enriched trace opaquely — without the caller having to
instantiate a `TraceProcessor`, execute queries, or know anything about
`TracePacket` internals.
If you hit this, please +1 so we can prioritise.
Contributor guide
Research direction
Start with src/traceconv/trace_to_bundle.h and the TraceToBundle() entry point, then read src/trace_processor/util/trace_enrichment/trace_enrichment.h and EnrichTrace(). Define how an include/ API should accept paths or bytes plus BundleContext-equivalent settings and return enriched output opaquely. Done means a public C++ interface exists without requiring callers to instantiate TraceProcessor, run queries, or know TracePacket internals.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100