Skip to content

Update Microsoft.Diagnostics.Runtime to 4.0.722401#127088

Merged
max-charlamb merged 1 commit intomainfrom
dev/max-charlamb/update-clrmd-cross-bitness
Apr 28, 2026
Merged

Update Microsoft.Diagnostics.Runtime to 4.0.722401#127088
max-charlamb merged 1 commit intomainfrom
dev/max-charlamb/update-clrmd-cross-bitness

Conversation

@max-charlamb
Copy link
Copy Markdown
Member

@max-charlamb max-charlamb commented Apr 17, 2026

Update ClrMD to the first stable release with cross-bitness address truncation fixes (microsoft/clrmd#1423).

Changes

  • eng/Versions.props: Update MicrosoftDiagnosticsRuntimeVersion from 4.0.0-beta.26210.1 to 4.0.722401 (stable release)
  • DumpTestBase.cs: Remove the cross-bitness dump test skip added in Skip cross-bitness cDAC dump tests until ClrMD supports it #127118 — ClrMD 4.0.722401 now correctly handles sign-extended CLRDATA_ADDRESS values, enabling 32-bit hosts to read 64-bit dumps

What was fixed in ClrMD

ClrMD 4.0.722401 includes:

  • ClrDataAddress type with explicit sign-extension handling (FromTargetAddress / ToAddress)
  • ABI-safe COM vtable marshalling (addresses as ulong primitives, not structs)
  • unchecked casts to prevent OverflowException on sign-extended 32-bit addresses
  • Full verification against sospriv.idl in dotnet/runtime

Cross-platform verification

xplat cDAC dump tests pass with the skip removed:
https://dev.azure.com/dnceng-public/public/_build/results?buildId=1398682&view=ms.vss-test-web.build-test-results-tab

Copilot AI review requested due to automatic review settings April 17, 2026 17:51
@github-actions github-actions Bot added the area-codeflow for labeling automated codeflow label Apr 17, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repo’s pinned ClrMD dependency version to pick up the newer Microsoft.Diagnostics.Runtime beta that includes cross-bitness dump reading support (upstream changes replace host IntPtr.Size assumptions with target PointerSize).

Changes:

  • Bump MicrosoftDiagnosticsRuntimeVersion from 4.0.0-beta.26210.1 to 4.0.0-beta.26217.1.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repo’s pinned ClrMD (Microsoft.Diagnostics.Runtime) package version so runtime tooling/tests that depend on it can pick up upstream fixes (notably cross-bitness dump reading via target PointerSize).

Changes:

  • Bump MicrosoftDiagnosticsRuntimeVersion from 4.0.0-beta.26210.1 to 4.0.0-beta.26217.1.

@github-actions
Copy link
Copy Markdown
Contributor

🤖 Copilot Code Review — PR #127088

Note

This review was AI-generated by Copilot.

Holistic Assessment

Motivation: Justified. The PR bumps Microsoft.Diagnostics.Runtime (ClrMD) to pick up cross-bitness dump reading support (microsoft/clrmd#1421), which replaces ~50 uses of IntPtr.Size (host pointer size) with the target process's PointerSize so dumps from different architectures can be read correctly (e.g., ARM64 dumps from an x64 host).

Approach: Correct. A single version property change in eng/Versions.props is the standard mechanism for bumping package versions in dotnet/runtime.

Summary: ✅ LGTM. This is a minimal, low-risk version bump (4.0.0-beta.26210.14.0.0-beta.26217.1) of a test-only dependency consumed solely by Microsoft.Diagnostics.DataContractReader.DumpTests.csproj. No production code is affected, no public API surface changes, and no behavioral changes to the runtime itself.


Detailed Findings

✅ Scope & Risk — Minimal change, test-only impact

The change modifies exactly one line in eng/Versions.props. The MicrosoftDiagnosticsRuntimeVersion property is consumed only by the cDAC DumpTests project (src/native/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj, line 42). No production libraries or runtime components reference this package, so the blast radius is limited to test infrastructure.

✅ Motivation verified — Cross-bitness support is real

The referenced clrmd PR (#1421) makes substantive changes across 14 files to replace host-sized pointer reads with target-sized reads, including a bug fix in CommonMemoryReader.ReadPointer (was resolving to the wrong AsPointer overload, treating pointer size as offset). This is a meaningful improvement for the cDAC dump test infrastructure which needs to read dumps from various architectures.

✅ No public API surface changes

No ref/ assembly changes, no new public members, no production source changes. API approval verification is not applicable.

✅ Version convention consistency

The version follows the existing pre-release naming convention (4.0.0-beta.NNNNN.N) consistent with the previous value. No concerns about version format or feed compatibility.

Generated by Code Review for issue #127088 ·

Update ClrMD to the first stable release with cross-bitness address
truncation fixes (microsoft/clrmd#1423). This version correctly handles
sign-extended CLRDATA_ADDRESS values on 32-bit targets, enabling
32-bit hosts to read 64-bit dumps.

Remove the cross-bitness dump test skip added in #127118 — ClrMD now
supports this scenario.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@max-charlamb max-charlamb force-pushed the dev/max-charlamb/update-clrmd-cross-bitness branch from 5c47862 to 0ca3c8d Compare April 27, 2026 20:16
@max-charlamb max-charlamb changed the title Update Microsoft.Diagnostics.Runtime to 4.0.0-beta.26217.1 Update Microsoft.Diagnostics.Runtime to 4.0.722401 Apr 27, 2026
@max-charlamb max-charlamb merged commit 41781d5 into main Apr 28, 2026
188 of 198 checks passed
@max-charlamb max-charlamb deleted the dev/max-charlamb/update-clrmd-cross-bitness branch April 28, 2026 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-codeflow for labeling automated codeflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants