-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Improve logging of GC ref map mismatches #80219
Conversation
(apologies for updating the bug description, I originally copied an earlier version of the CoreCLR runtime dump where I had reversed the tags for Crossgen2 vs. Runtime) |
The Unix builds are failing because of the |
@janvorli - thanks for the heads-up, so does that mean that I should be using |
Yes |
And also not to use |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you!
Great improvement. I have a question regarding dumping: we skip Nit: this may need a trailing space. printf("POP(0x%x)", stackPop); |
Thanks Anton for your feedback. I think that |
As part of investigation of the GC refmap mismatch I'm fixing with
#80218
I have improved CoreCLR runtime behavior in the presence of GC refmap mismatches by adding debug-only logic to dump both the GC ref map emitted by Crossgen2 and the one calculated by the native runtime. The dump format matches the way R2RDump outputs GC ref maps next to method import cells in the R2R file.
Thanks
Tomas
/cc @dotnet/crossgen-contrib
C:\git\runtime>C:\triage\wpf\bin\Debug\net7.0-windows\win-arm64\publish\wpf.exe
GC ref map mismatch detected for method: System.Windows.Media.PathGeometry::GetPathBoundsAsRB
Runtime GC ref map: I(70) R(78) I(80)
Crossgen2 GC ref map: I(68 70) R(78) I(80)
Assert failure(PID 12596 [0x00003134], Thread: 9568 [0x2560]): false
CORECLR! CheckGCRefMapEqual + 0x1DC (0x00007fff
e66fa72c) CORECLR! ExternalMethodFixupWorker + 0xA98 (0x00007fff
e681b3c8)CORECLR! DelayLoad_MethodCall + 0x58 (0x00007fff
e6581a18) PRESENTATIONCORE! <no symbol> + 0x0 (0x00007fff
e401ecac)PRESENTATIONCORE! + 0x0 (0x00007fff
e401eaa4) PRESENTATIONFRAMEWORK! <no symbol> + 0x0 (0x00007fff
dbd34db4)PRESENTATIONFRAMEWORK! + 0x0 (0x00007fff
dbd33d6c) PRESENTATIONFRAMEWORK! <no symbol> + 0x0 (0x00007fff
dbc9a85c)PRESENTATIONCORE! + 0x0 (0x00007fff
e3ecde14) PRESENTATIONFRAMEWORK! <no symbol> + 0x0 (0x00007fff
dc13ce5c)File: C:\git\runtime\src\coreclr\vm\frames.cpp Line: 2177
Image: C:\triage\wpf\bin\Debug\net7.0-windows\win-arm64\publish\wpf.exe