[GH-ISSUE #2370] [Feature] Inspect caller-selected recorded EventPipe traces #784

Open
opened 2026-10-15 18:28:20 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @matbrgz on GitHub (Oct 12, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/2370

Type: Feature Domain: Reverse Engineering Status: Proposed Ecosystem: REA

Requested capability

Managed inspection is static and the contracts do not declare a recorded .nettrace/EventPipe input profile. Saved event streams can answer which runtime events were actually recorded without attaching REA to a running CLR process.

Acceptance criteria

  • Define supported recording versions, provider/event identities, timestamp units and recorded process/thread metadata.
  • Decode a documented initial event subset with explicit loss, sampling, unknown-event and stream-coverage states.
  • Preserve input hashes and source provenance; do not infer that an unrecorded event did not occur or pair a historical PID with a live process.
  • Verify original saved traces, malformed/truncated streams, resource limits, cancellation and CLI/MCP parity; live trace collection is out of scope.

References and boundaries

This feature needs its own docs/specs//spec.md, plan.md and tasks.md before code. Current upstream sources and existing issues were searched before filing. A new REA provider or expanded execution authority requires the maintainer scope decision specified by CONTRIBUTING.md; this proposal does not supply that decision.

Originally created by @matbrgz on GitHub (Oct 12, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/2370 [![Type: Feature](https://img.shields.io/badge/type-feature-blue.svg?style=flat-square)](https://github.com/morluto/rea) [![Domain: Reverse Engineering](https://img.shields.io/badge/domain-reverse_engineering-blueviolet.svg?style=flat-square)](https://github.com/morluto/rea) [![Status: Proposed](https://img.shields.io/badge/status-proposed-blue.svg?style=flat-square)](https://github.com/morluto/rea) [![Ecosystem: REA](https://img.shields.io/badge/ecosystem-morluto%2Frea-8A2BE2.svg?style=flat-square)](https://github.com/morluto/rea) ## Requested capability Managed inspection is static and the contracts do not declare a recorded .nettrace/EventPipe input profile. Saved event streams can answer which runtime events were actually recorded without attaching REA to a running CLR process. ## Acceptance criteria - [ ] Define supported recording versions, provider/event identities, timestamp units and recorded process/thread metadata. - [ ] Decode a documented initial event subset with explicit loss, sampling, unknown-event and stream-coverage states. - [ ] Preserve input hashes and source provenance; do not infer that an unrecorded event did not occur or pair a historical PID with a live process. - [ ] Verify original saved traces, malformed/truncated streams, resource limits, cancellation and CLI/MCP parity; live trace collection is out of scope. ## References and boundaries - https://learn.microsoft.com/en-us/dotnet/core/diagnostics/eventpipe This feature needs its own docs/specs/<feature>/spec.md, plan.md and tasks.md before code. Current upstream sources and existing issues were searched before filing. A new REA provider or expanded execution authority requires the maintainer scope decision specified by CONTRIBUTING.md; this proposal does not supply that decision.
Author
Owner

@matbrgz commented on GitHub (Oct 12, 2026):

Implementation & Format Triage Notes

Objective (ELI5):
Read and decode offline .NET EventPipe traces (.nettrace files generated via dotnet-trace) without requiring a live CLR target.

Implementation Strategy:

  • Pure static binary parser reading the NetTrace format specification: FastSerialization blocks, metadata blocks, and thread event streams.
  • Extract high-level GC events, exceptions thrown, and method execution timings.
<!-- gh-comment-id:6133939805 --> @matbrgz commented on GitHub (Oct 12, 2026): ### Implementation & Format Triage Notes **Objective (ELI5):** Read and decode offline .NET EventPipe traces (`.nettrace` files generated via `dotnet-trace`) without requiring a live CLR target. **Implementation Strategy:** - Pure static binary parser reading the NetTrace format specification: FastSerialization blocks, metadata blocks, and thread event streams. - Extract high-level GC events, exceptions thrown, and method execution timings.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#784
No description provided.