Skip to content

WIP: Update SOS for unified ISOSDacInterface18 GCInfo API#5898

Draft
max-charlamb wants to merge 2 commits into
mainfrom
maxcharlamb/isosdacinterface18-gcinfo
Draft

WIP: Update SOS for unified ISOSDacInterface18 GCInfo API#5898
max-charlamb wants to merge 2 commits into
mainfrom
maxcharlamb/isosdacinterface18-gcinfo

Conversation

@max-charlamb

Copy link
Copy Markdown
Member

Note

This content was generated with AI assistance.

Update SOS !GCInfo command to use unified ISOSDacInterface18 API with timeline output format.

Depends on: dotnet/runtime#129761

Max Charlamb and others added 2 commits June 23, 2026 16:22
Add ISOSDacInterface18 consumption in !GCInfo command with fallback
to the existing raw-bytes decoding path when the interface is not
available (non-cDAC scenarios).

The new path queries the cDAC for:
- GC info header (code size, prolog, stack base, etc.)
- Interruptible ranges
- Safe points
- Register lifetimes
- Stack slot lifetimes

Also adds a basic GCInfo verification to OtherCommands.script.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…output

- Replace SOSGCRegisterLifetime + SOSGCStackSlotLifetime with unified
  SOSGCSlotLifetime struct
- Replace GetGCInfoRegisterLifetimes + GetGCInfoStackSlotLifetimes with
  single GetGCInfoSlotLifetimes
- Remove ReturnKind from SOSGCInfoHeader (matches runtime change)
- TryDumpGCInfoViaInterface18 now outputs legacy-compatible timeline format:
  header fields, untracked slots, then chronological interruptible/slot events
- Update OtherCommands.script GCInfo verification to match timeline output

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant