Repository navigation
Read the target runtime version through DAC/DBI - #136384
Merged
max-charlamb merged 1 commit intoOct 26, 2026
Merged
max-charlamb merged 1 commit into
max-charlamb merged 1 commit into
Conversation
|
Azure Pipelines: Successfully started running 4 pipeline(s). 12 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
rcj1
approved these changes
Oct 23, 2026
Use the cDAC RuntimeInfo contract for universal DBI version reporting while preserving the native DAC's version-matched behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 711af3e2-f3d6-4f58-86ac-71b46501a42b
max-charlamb
force-pushed
the
dev/max-charlamb/universal-dbi-target-version
branch
from
October 25, 2026 15:32
734b84f to
554f9a6
Compare
steveisok
approved these changes
Oct 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CordbProcess::GetVersioncurrently reports the product version compiled into DBI, assuming that DBI and the target runtime are version-matched. That assumption does not hold for universal DBI.Add
IDacDbiInterface::GetRuntimeVersionand routeCordbProcess::GetVersionthrough it. The cDAC implementation reads the target's existingRuntimeInfo.GetRuntimeProductVersion()contract, removes prerelease/build labels, and returns the product version asmajor.minor.patch.0. The native DAC retains its version-matched constants.The DBI call uses the standard public API locking and lifetime checks and returns
CORDBG_E_NOTREADYif the DAC has not initialized. Regression coverage exercises target versions different from the reader's build, prerelease/build labels, all mock target architectures, invalid versions, null output pointers, and contract failures.cc @rcj1
Validation
Passed: Checked Windows x64 builds of
mscordbi,mscordbi_universal, andmscordaccore:Passed: 464 focused cDAC tests, with zero failures or skips:
Live debugger integration and NativeAOT publishing of cDAC were not run.
Note
This pull request was prepared with GitHub Copilot.