-
Notifications
You must be signed in to change notification settings - Fork 5.5k
[cDAC] Implement stack reference walking and GC stress verification #125505
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
Merged
max-charlamb
merged 76 commits into
dotnet:main
from
max-charlamb:cdac-stackreferences-2-with-stress
Apr 1, 2026
Merged
Changes from 68 commits
Commits
Show all changes
76 commits
Select commit
Hold shift + click to select a range
d8b570c
cdac: Stack walk GC scanning, exception handling, and IsFilterFunclet…
933a96c
cdac: Implement EnumerateLiveSlots in managed GCInfoDecoder
57b16fb
cdac: Fix build errors in stack walk and execution manager
7d56297
cdac: Complete GcScanner.EnumGcRefs with live slot enumeration
8cc1e70
cdac: Implement GetStackReferences end-to-end
316d0dd
cdac: Add dump tests for GetStackReferences
82816bd
cdac: Restore datadescriptor entries with proper native support
521b94b
update
f30563a
add tests
95f6b65
update test script
4264428
clean up
c08e71a
add debug verification
e1f3c73
cdac: Add Frame GcScanRoots dispatch for non-frameless frames
76be992
cdac: Fix stack slot register in GcScanner, add set-based debug valid…
7eb79ae
cdac: Fix GCInfo slot table decoding bugs
c6fcf57
cdac: Fix ARM64 stack base register and ExecutionAborted exit path
b8c9d73
cdac: Match native skip behavior and add FindSafePoint TODO
96d2958
cdac: Implement scratch register/slot filtering in GCInfo decoder
a7bb140
Implement context register fetching by number
59b637a
cdac: Address PR review comments
8b5e023
GCReportCallback missing object dereference
2a40690
Fix cDAC stack walking bugs found via GC stress verification
db6d9b3
Fix Frame skip to use caller SP instead of initial SP
b567fbc
Guard new Data fields with ContainsKey for backward compatibility
5b66392
Address PR review comments: cleanup and safety fixes
8656473
Address remaining PR review comments
efb4301
Restore GetMethodDescPtr docs and fix patchpointinfo friend
f71402c
Remove unused m_lastReportedFunclet from ExInfo
6fc9f4e
remove guards that were not required
c921258
remove stale comment
84ce5aa
Fix GCReportCallback to throw on read failure and document funclet gaps
85de66c
Add cDAC GC stress verification tool (GCSTRESS_CDAC=0x20)
ccc74f8
Triple-match cDAC vs DAC vs runtime GC ref comparison
b53d67f
Remove DAC from stress tool, add cDAC ref filtering
0104d35
Add known issues doc and filter dynamic methods in GC stress
3c3d3c9
Move gcstress docs to cDAC tests directory and add README section
3beae98
Fix review issues: thread safety, buffer overflow, revert stale changes
52c150e
nit cleanup
2ebe34a
Merge remote-tracking branch 'origin/main' into cdac-stackreferences-…
f85d81f
updates
9b9a13a
include cdacdata.h
f0ea129
update to use the existing exception clause info
5d0748b
comments
45cadcd
comments
ae43c33
Merge remote-tracking branch 'origin/main' into cdac-stackreferences-…
2657230
Fix infinite loop in repo root discovery on Windows filesystem root
ebfbe16
Remove RegisterNumber from RegisterAttribute and context structs
5161d0d
Fix mock descriptors for new ExceptionInfo, RealCodeHeader, and Ready…
7f6da84
Fix cross-platform build errors: cdac_data<ExInfo> and _wfopen
3c1ebf6
Fix stack slot register encoding to match native GetStackReg
377e9f3
Improve GC stress comparison to validate Address and log Register/Offset
43d9a34
Fail initialization if ISOSDacInterface QI fails
f06f18d
Make IGCInfoDecoder.EnumerateLiveSlots abstract instead of default-th…
263d536
Only set ContinueOnAssert when not in FailFast mode
3188705
Merge remote-tracking branch 'origin/main' into pr-125505
cd25a01
Move skipBelowSP into CreateStackWalkCore helper
650ffb5
Simplify StackWalk_1.cs flags and logic
ce2762f
Fix GC stress register ref comparison with two-phase matching
67bfe49
Add extra Release for leaked enumerator ref-count in GC stress
4e66998
comments
c11f360
updates from later branch
bc3a6de
Restructure gcstress tests with separate debuggee projects
4740e1f
Rename gcstress to StressTests, trim to 2 debuggees, add README
a88fe3e
Address Copilot review comments
c2270bb
Address review comments: cdacstress fixes and StackWalk comment
cd2c88b
Fix cross-platform build errors
cdeb724
Fix GetModuleHandleW unavailable on Linux
ca13408
Remove dead movedPastFirstExInfo tracking in Filter()
79dae6b
Make DebuggerFilterContext/ProfilerFilterContext optional in Thread data
346419f
Revert "Make DebuggerFilterContext/ProfilerFilterContext optional in …
d35d94f
Merge remote-tracking branch 'origin/main' into cdac-stackreferences-…
0c139bd
Fix x86 qsort calling convention and merge main
c1266b8
Fall through to legacy DAC for GetStackReferences
446dc2d
Skip StackRefs dump tests pending ScanFrameRoots implementation
3763ceb
Address CI and review feedback
39b44e4
skip tests on x86 until it supports gcdecoding
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.