Remove IsCallerSPValid, standardize caller-frame validity on IsCallerContextValid, and finalize AsmOffsets updates#128873
Remove IsCallerSPValid, standardize caller-frame validity on IsCallerContextValid, and finalize AsmOffsets updates#128873Copilot wants to merge 3 commits into
IsCallerSPValid, standardize caller-frame validity on IsCallerContextValid, and finalize AsmOffsets updates#128873Conversation
Co-authored-by: davidwrighton <10779849+davidwrighton@users.noreply.github.com>
IsCallerSPValid and standardize caller-frame validity on IsCallerContextValid
|
Tagging subscribers to this area: @agocke |
|
@copilot, in the build there are a lot of errors that look like |
Co-authored-by: davidwrighton <10779849+davidwrighton@users.noreply.github.com>
Fixed in 87ea2d9 by updating I updated the Validated with:
|
IsCallerSPValid and standardize caller-frame validity on IsCallerContextValidIsCallerSPValid, standardize caller-frame validity on IsCallerContextValid, and update AsmOffsets
|
@copilot arm builds are still failing with errors like |
Co-authored-by: davidwrighton <10779849+davidwrighton@users.noreply.github.com>
Fixed in I corrected the ARM Release
Validation run:
|
IsCallerSPValid, standardize caller-frame validity on IsCallerContextValid, and update AsmOffsetsIsCallerSPValid, standardize caller-frame validity on IsCallerContextValid, and finalize AsmOffsets updates
IsCallerSPValidwas a legacy EH-era flag that could drift fromIsCallerContextValidsemantics. This change removes the legacy flag and makes caller-frame validity uniformly context-based, with explicit callouts for spots that previously tolerated divergence.Description
IsCallerSPValidfromREGDISPLAY_BASE.IsCallerContextValid.IsCallerSPValidwrites in unwind/update paths across CoreCLR VM and debugger architecture-specific code.src/coreclr/System.Private.CoreLib/src/System/Runtime/ExceptionServices/AsmOffsets.csfor affected 32-bit targets (ARM, X86, WASM) soREGDISPLAYsize/offset constants match the new layout and native static asserts pass.REGDISPLAYconstants inAsmOffsets.csto match the current native layout (SIZEOF__REGDISPLAY,OFFSETOF__REGDISPLAY__SP,OFFSETOF__REGDISPLAY__ControlPC) after CI-reported ARM static-assert mismatches.Key change areas
src/coreclr/inc/regdisp.hsrc/coreclr/inc/stackframe.hsrc/coreclr/vm/exceptionhandling.cppsrc/coreclr/vm/eetwain.cppsrc/coreclr/System.Private.CoreLib/src/System/Runtime/ExceptionServices/AsmOffsets.csManual inspection callouts (safety review)
src/coreclr/vm/eetwain.cpp(EnsureCallerContextIsValidpaths)src/coreclr/vm/stackwalk.cpp(StackFrameIterator::SkipTo)src/coreclr/gcinfo/gcinfodumper.cpp(syntheticREGDISPLAYinitialization)Example
Validation
./build.sh clr.runtime -c Release -arch x64 -os linux -ninja./build.sh clr.runtime -os browser -arch wasm -c Release -ninja./build.sh clr.runtime -c Release -arch arm -os linux -ninja