Skip to content

Delete DacDbi APIs AreGCStructuresValid and IsWinRTModule#128014

Open
Copilot wants to merge 1 commit intomainfrom
copilot/delete-dacdbi-apis
Open

Delete DacDbi APIs AreGCStructuresValid and IsWinRTModule#128014
Copilot wants to merge 1 commit intomainfrom
copilot/delete-dacdbi-apis

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 11, 2026

Removes the DacDbi interface methods AreGCStructuresValid and IsWinRTModule everywhere. Both native implementations were trivial constants (TRUE and FALSE respectively), the managed cDAC mirrors did the same, and only one in-tree caller existed.

Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com>
Copilot AI requested review from Copilot and rcj1 and removed request for Copilot May 11, 2026 00:22
Copilot finished work on behalf of rcj1 May 11, 2026 00:23
@rcj1 rcj1 requested review from hoyosjs and max-charlamb May 11, 2026 00:24
@rcj1 rcj1 marked this pull request as ready for review May 11, 2026 00:24
Copilot AI review requested due to automatic review settings May 11, 2026 00:24
@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag
See info in area-owners.md if you want to be subscribed.

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

This PR removes the IDacDbiInterface methods AreGCStructuresValid and IsWinRTModule across CoreCLR native DAC/DBI, the managed cDAC legacy interop mirror, and associated dump-based tests, and simplifies the sole in-tree caller (CordbProcess::EnumerateHeap) accordingly.

Changes:

  • Deletes the two methods from the native IDacDbiInterface definition (IDL + C++ header) and removes their native implementations.
  • Removes the corresponding managed legacy interop slots and cDAC implementations, plus the related dump tests.
  • Simplifies heap enumeration to no longer branch on AreGCStructuresValid (previously a constant-TRUE implementation).
Show a summary per file
File Description
src/coreclr/inc/dacdbi.idl Removes the two IDacDbiInterface methods from the IDL contract.
src/coreclr/debug/inc/dacdbiinterface.h Removes the pure-virtual declarations and updates WalkHeap documentation to drop references to the removed API.
src/coreclr/debug/daccess/dacdbiimpl.h Drops the two method declarations from DacDbiInterfaceImpl.
src/coreclr/debug/daccess/dacdbiimpl.cpp Deletes the trivial constant-return implementations for the removed methods.
src/coreclr/debug/di/process.cpp Removes AreGCStructuresValid call/branch and always constructs the heap enumerator.
src/coreclr/debug/daccess/dacimpl.h Updates DacHeapWalker docs to remove the AreGCStructuresValid reference.
src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Dbi/IDacDbiInterface.cs Removes the managed COM interface slots for the deleted methods.
src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Dbi/DacDbiImpl.cs Removes the managed implementations (and DEBUG cross-validation) for the deleted methods.
src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiGCDumpTests.cs Removes the dump test that cross-validated AreGCStructuresValid.
src/native/managed/cdac/tests/DumpTests/DacDbi/DacDbiAppDomainDumpTests.cs Removes the dump test for IsWinRTModule and the now-unused using.

Copilot's findings

  • Files reviewed: 10/10 changed files
  • Comments generated: 1

Comment thread src/coreclr/inc/dacdbi.idl
@rcj1
Copy link
Copy Markdown
Contributor

rcj1 commented May 11, 2026

@hoyosjs you may need to force merge this, ba-g isn’t working and these have been timing out

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants