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