Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add breaking change version DAC API (ISOSDacInterface9 interface) #39567

Merged
1 commit merged into from
Jul 18, 2020

Conversation

mikem8361
Copy link
Member

GetBreakingChangeVersion(int* version)

Used in SOS to check if any of the runtime data structures it depends on has changed.

Issue: #27309

GetBreakingChangeVersion(int* version)

Used in SOS to check if any of the runtime data structures it depends on has changed.

Issue: dotnet#27309
@ghost
Copy link

ghost commented Jul 17, 2020

Tagging subscribers to this area: @tommcdon
Notify danmosemsft if you want to be subscribed.

@jkotas
Copy link
Member

jkotas commented Jul 18, 2020

Are you doing any breaking changes together with this? I would love to delete https://github.com/dotnet/runtime/search?q=TlsIdx_ThreadType that I had to keep to avoid breaking SOS.

Copy link
Member

@noahfalk noahfalk left a comment

Choose a reason for hiding this comment

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

LGTM

@mikem8361
Copy link
Member Author

mikem8361 commented Jul 18, 2020 via email

@noahfalk
Copy link
Member

I don't know if @mikem8361 had any breaking changes on deck? My hope would be that we wouldn't take any breaking changes immediately because most of our customers would still be using old versions of SOS that don't have a check for the version number. We don't have great usage telemetry, but we do have NuGet download numbers and likely some windbg metrics to give us a clue how quickly new SOS versions are being adopted.

@mikem8361
Copy link
Member Author

@jkotas, I'm not sure how to write the DAC API to get the ThreadType since it is in thread_local variable (t_ThreadType). Maybe it is simple but I haven't seem another example in existing DAC code.

@ghost
Copy link

ghost commented Jul 18, 2020

Hello @mikem8361!

Because this pull request has the auto-merge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.

p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (@msftbot) and give me an instruction to get started! Learn more here.

@jkotas
Copy link
Member

jkotas commented Jul 18, 2020

I'm not sure how to write the DAC API to get the ThreadType since it is in thread_local variable

DI has the code to do that (CordbUnmanagedThread::GetEEThreadPtr). It needs NT_TIB* pointer to start from. The DAC API can take this pointer. Or it can take some other form of thread-id and get NT_TIB* from it.

@ghost ghost merged commit 4060615 into dotnet:master Jul 18, 2020
Jacksondr5 pushed a commit to Jacksondr5/runtime that referenced this pull request Aug 10, 2020
…tnet#39567)

GetBreakingChangeVersion(int* version)

Used in SOS to check if any of the runtime data structures it depends on has changed.

Issue: dotnet#27309
@mikem8361 mikem8361 deleted the breakingchange branch August 14, 2020 17:16
@karelz karelz added this to the 5.0.0 milestone Aug 18, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 8, 2020
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants