1 write to Header
Microsoft.Diagnostics.DataContractReader.Contracts (1)
Contracts\GCInfo\X86\GCInfo.cs (1)
118Header = InfoHdr.DecodeHeader(target, ref offset, MethodSize, (int)gcInfoVersion);
76 references to Header
Microsoft.Diagnostics.DataContractReader.Contracts (76)
Contracts\GCInfo\X86\GCInfo.cs (55)
122if (relativeOffset < Header.PrologSize) 128foreach (uint epilogStart in Header.Epilogs) 130if (relativeOffset > epilogStart && relativeOffset < epilogStart + Header.EpilogSize) 137uint frameDwordCount = Header.FrameSize; 144if (Header.EdiSaved) 149if (Header.EsiSaved) 154if (Header.EbxSaved) 159if (Header.EbpSaved) 167if (Header.EbpFrame || Header.DoubleAlign) 169Debug.Assert(Header.EbpSaved); 194if (Header.NoGCRegionCount == 0) 200ImmutableArray<NoGCRegion>.Builder builder = ImmutableArray.CreateBuilder<NoGCRegion>((int)Header.NoGCRegionCount); 201for (int i = 0; i < Header.NoGCRegionCount; i++) 213if (Header.HasArgTabOffset) 216argTabPtr = _gcInfoAddress + _infoHdrSize + Header.ArgTabOffset; 226for (int i = 0; i < Header.NoGCRegionCount; i++) 234for (int i = 0; i < Header.UntrackedCount; i++) 241for (int i = 0; i < Header.VarPtrTableSize; i++) 249GCArgTable argTable = new(_target, Header, argTabPtr); 316if (Header.UntrackedCount == 0) 322for (int i = 0; i < Header.NoGCRegionCount; i++) 336if (Header.DoubleAlign) 338if (Header.EdiSaved) calleeSavedRegsCount++; 339if (Header.EsiSaved) calleeSavedRegsCount++; 340if (Header.EbxSaved) calleeSavedRegsCount++; 343ImmutableArray<UntrackedSlot>.Builder builder = ImmutableArray.CreateBuilder<UntrackedSlot>((int)Header.UntrackedCount); 345for (uint i = 0; i < Header.UntrackedCount; i++) 354bool isEbpRelative = Header.EbpFrame; 355if (Header.DoubleAlign && 356(uint)stkOffs >= _target.PointerSize * (Header.FrameSize + calleeSavedRegsCount)) 360stkOffs -= (int)(_target.PointerSize * (Header.FrameSize + calleeSavedRegsCount)); 371if (Header.VarPtrTableSize == 0) 376for (int i = 0; i < Header.NoGCRegionCount; i++) 381for (int i = 0; i < Header.UntrackedCount; i++) 391ImmutableArray<VarPtrLifetime>.Builder builder = ImmutableArray.CreateBuilder<VarPtrLifetime>((int)Header.VarPtrTableSize); 393for (uint i = 0; i < Header.VarPtrTableSize; i++) 404if (Header.EbpFrame) 421=> codeOffset < Header.PrologSize; 428foreach (uint epilogStart in Header.Epilogs) 430if (codeOffset > epilogStart && codeOffset < epilogStart + Header.EpilogSize) 456return (Header.EbpFrame || Header.DoubleAlign) ? REG_EBP : REG_ESP; 474return Header.VarArgs ? 0u : Header.ArgCount * (uint)_target.PointerSize; 491if (Header.Interruptible) 495uint cursor = Header.PrologSize; 498foreach (int epilogStart in Header.Epilogs.OrderBy(e => e)) 501uint eEnd = eStart + Header.EpilogSize; 519if ((uint)offset < Header.PrologSize) 541if (!Header.Interruptible) 578if (options.IsExecutionAborted && !Header.Interruptible) 587int espBias = Header.EbpFrame ? 0 : (int)CalculatePushedArgSizeAt(instructionOffset); 607uint spBase = Header.EbpFrame ? FRAMEREG_REL : SP_REL; 617int spOffset = Header.EbpFrame ? vp.StackOffset : vp.StackOffset + espBias;
Contracts\StackWalk\Context\X86\X86Unwinder.cs (21)
74else if (!gcInfo.Header.EbpFrame && !gcInfo.Header.DoubleAlign) 105if (gcInfo.Header.EbpFrame || gcInfo.Header.DoubleAlign) 129if (gcInfo.Header.DoubleAlign) 147if (gcInfo.Header.LocalAlloc) 248Debug.Assert(!gcInfo.Header.EbpFrame && !gcInfo.Header.DoubleAlign); 313Debug.Assert(!gcInfo.Header.EbpFrame && !gcInfo.Header.DoubleAlign); 354Debug.Assert(!gcInfo.Header.EbpFrame && !gcInfo.Header.DoubleAlign); 435Debug.Assert(gcInfo.Header.EbpFrame || gcInfo.Header.DoubleAlign); 441if (gcInfo.Header.Handlers && !gcInfo.IsInProlog) 488if (gcInfo.Header.DoubleAlign && (curEbp & 0x04) != 0) 517Debug.Assert(gcInfo.Header.EbpFrame || gcInfo.Header.DoubleAlign); 564if (gcInfo.Header.DoubleAlign) 617uint stackParameterSize = gcInfo.Header.VarArgs ? 0 // varargs are caller-popped 618: gcInfo.Header.ArgCount * _pointerSize;