// <auto-generated/>
#nullable enable
using Microsoft.Diagnostics.DataContractReader;
using Microsoft.Diagnostics.DataContractReader.Contracts;
using Microsoft.Diagnostics.DataContractReader.Generated;
namespace Microsoft.Diagnostics.DataContractReader.Data;
/// <summary>Wraps the <c>Thread</c> type.</summary>
partial class Thread : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "Thread" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("Id", "uint32")]
public static int GetIdOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Id");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("OSId", "nuint")]
public static int GetOSIdOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "OSId");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("State", "uint32")]
public static int GetStateOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "State");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("DebuggerControlledThreadState", "uint32")]
public static int GetDebuggerControlledThreadStateOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "DebuggerControlledThreadState");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("PreemptiveGCDisabled", "uint32")]
public static int GetPreemptiveGCDisabledOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "PreemptiveGCDisabled");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Frame", "pointer")]
public static int GetFrameOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Frame");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("GCFrame", "pointer")]
public static int GetGCFrameOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "GCFrame");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("CachedStackBase", "pointer")]
public static int GetCachedStackBaseOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CachedStackBase");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("CachedStackLimit", "pointer")]
public static int GetCachedStackLimitOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CachedStackLimit");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("ExposedObject", "ObjectHandle")]
public static int GetExposedObjectOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "ExposedObject");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("LastThrownObject", "ObjectHandle")]
public static int GetLastThrownObjectOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "LastThrownObject");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("LastThrownObjectIsUnhandled", "uint32")]
public static int GetLastThrownObjectIsUnhandledOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "LastThrownObjectIsUnhandled");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("LinkNext", "pointer")]
public static int GetLinkNextOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "LinkNext");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("ExceptionTracker", "pointer")]
public static int GetExceptionTrackerOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "ExceptionTracker");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("UEWatsonBucketTrackerBuckets", "pointer")]
public static int GetUEWatsonBucketTrackerBucketsOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "UEWatsonBucketTrackerBuckets");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("ThreadLocalDataPtr", "pointer")]
public static int GetThreadLocalDataPtrOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "ThreadLocalDataPtr");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("DebuggerFilterContext", "pointer")]
public static int GetDebuggerFilterContextOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "DebuggerFilterContext");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("InteropDebuggingHijacked", "uint32")]
public static int GetInteropDebuggingHijackedOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "InteropDebuggingHijacked");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("CurrentCustomDebuggerNotification", "ObjectHandle")]
public static int GetCurrentCustomDebuggerNotificationOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CurrentCustomDebuggerNotification");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
partial void OnInit(Target target, TargetPointer address);
public Thread(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
OnInit(target, address);
}
static Thread IData<Thread>.Create(Target target, TargetPointer address)
=> new Thread(target, address);
[DataDescriptorDependency("DebuggerControlledThreadState", "uint32")]
public void WriteDebuggerControlledThreadState(uint value)
{
_layouts.Select(Address, out var t, out var b, out var n, "DebuggerControlledThreadState");
_target.WriteField<uint>(b, t, n, value);
DebuggerControlledThreadState = value;
}
private uint _Id__value = default!;
private bool _Id__read;
[DataDescriptorDependency("Id", "uint32")]
public partial uint Id
{
get
{
if (!_Id__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Id");
_Id__value = _target.ReadField<uint>(b, t, n);
_Id__read = true;
}
return _Id__value;
}
}
private TargetNUInt _OSId__value = default!;
private bool _OSId__read;
[DataDescriptorDependency("OSId", "nuint")]
public partial TargetNUInt OSId
{
get
{
if (!_OSId__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "OSId");
_OSId__value = _target.ReadNUIntField(b, t, n);
_OSId__read = true;
}
return _OSId__value;
}
}
private uint _State__value = default!;
private bool _State__read;
[DataDescriptorDependency("State", "uint32")]
public partial uint State
{
get
{
if (!_State__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "State");
_State__value = _target.ReadField<uint>(b, t, n);
_State__read = true;
}
return _State__value;
}
}
private uint _DebuggerControlledThreadState__value = default!;
private bool _DebuggerControlledThreadState__read;
[DataDescriptorDependency("DebuggerControlledThreadState", "uint32")]
public partial uint DebuggerControlledThreadState
{
get
{
if (!_DebuggerControlledThreadState__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "DebuggerControlledThreadState");
_DebuggerControlledThreadState__value = _target.ReadField<uint>(b, t, n);
_DebuggerControlledThreadState__read = true;
}
return _DebuggerControlledThreadState__value;
}
private set
{
_DebuggerControlledThreadState__value = value;
_DebuggerControlledThreadState__read = true;
}
}
private uint _PreemptiveGCDisabled__value = default!;
private bool _PreemptiveGCDisabled__read;
[DataDescriptorDependency("PreemptiveGCDisabled", "uint32")]
public partial uint PreemptiveGCDisabled
{
get
{
if (!_PreemptiveGCDisabled__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "PreemptiveGCDisabled");
_PreemptiveGCDisabled__value = _target.ReadField<uint>(b, t, n);
_PreemptiveGCDisabled__read = true;
}
return _PreemptiveGCDisabled__value;
}
}
private TargetPointer _Frame__value = default!;
private bool _Frame__read;
[DataDescriptorDependency("Frame", "pointer")]
public partial TargetPointer Frame
{
get
{
if (!_Frame__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Frame");
_Frame__value = _target.ReadPointerField(b, t, n);
_Frame__read = true;
}
return _Frame__value;
}
}
private TargetPointer _GCFrame__value = default!;
private bool _GCFrame__read;
[DataDescriptorDependency("GCFrame", "pointer")]
public partial TargetPointer GCFrame
{
get
{
if (!_GCFrame__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "GCFrame");
_GCFrame__value = _target.ReadPointerField(b, t, n);
_GCFrame__read = true;
}
return _GCFrame__value;
}
}
private TargetPointer _CachedStackBase__value = default!;
private bool _CachedStackBase__read;
[DataDescriptorDependency("CachedStackBase", "pointer")]
public partial TargetPointer CachedStackBase
{
get
{
if (!_CachedStackBase__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "CachedStackBase");
_CachedStackBase__value = _target.ReadPointerField(b, t, n);
_CachedStackBase__read = true;
}
return _CachedStackBase__value;
}
}
private TargetPointer _CachedStackLimit__value = default!;
private bool _CachedStackLimit__read;
[DataDescriptorDependency("CachedStackLimit", "pointer")]
public partial TargetPointer CachedStackLimit
{
get
{
if (!_CachedStackLimit__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "CachedStackLimit");
_CachedStackLimit__value = _target.ReadPointerField(b, t, n);
_CachedStackLimit__read = true;
}
return _CachedStackLimit__value;
}
}
private Data.ObjectHandle _ExposedObject__value = default!;
private bool _ExposedObject__read;
[DataDescriptorDependency("ExposedObject", "ObjectHandle")]
public partial Data.ObjectHandle ExposedObject
{
get
{
if (!_ExposedObject__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "ExposedObject");
_ExposedObject__value = _target.ReadDataField<Data.ObjectHandle>(b, t, n);
_ExposedObject__read = true;
}
return _ExposedObject__value;
}
}
private Data.ObjectHandle _LastThrownObject__value = default!;
private bool _LastThrownObject__read;
[DataDescriptorDependency("LastThrownObject", "ObjectHandle")]
public partial Data.ObjectHandle LastThrownObject
{
get
{
if (!_LastThrownObject__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "LastThrownObject");
_LastThrownObject__value = _target.ReadDataField<Data.ObjectHandle>(b, t, n);
_LastThrownObject__read = true;
}
return _LastThrownObject__value;
}
}
private uint _LastThrownObjectIsUnhandled__value = default!;
private bool _LastThrownObjectIsUnhandled__read;
[DataDescriptorDependency("LastThrownObjectIsUnhandled", "uint32")]
public partial uint LastThrownObjectIsUnhandled
{
get
{
if (!_LastThrownObjectIsUnhandled__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "LastThrownObjectIsUnhandled");
_LastThrownObjectIsUnhandled__value = _target.ReadField<uint>(b, t, n);
_LastThrownObjectIsUnhandled__read = true;
}
return _LastThrownObjectIsUnhandled__value;
}
}
private TargetPointer _LinkNext__value = default!;
private bool _LinkNext__read;
[DataDescriptorDependency("LinkNext", "pointer")]
public partial TargetPointer LinkNext
{
get
{
if (!_LinkNext__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "LinkNext");
_LinkNext__value = _target.ReadPointerField(b, t, n);
_LinkNext__read = true;
}
return _LinkNext__value;
}
}
private TargetPointer _ExceptionTracker__value = default!;
private bool _ExceptionTracker__read;
[DataDescriptorDependency("ExceptionTracker", "pointer")]
public partial TargetPointer ExceptionTracker
{
get
{
if (!_ExceptionTracker__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "ExceptionTracker");
_ExceptionTracker__value = b + (ulong)t.Fields[n].Offset;
_ExceptionTracker__read = true;
}
return _ExceptionTracker__value;
}
}
private TargetPointer? _UEWatsonBucketTrackerBuckets__value = default!;
private bool _UEWatsonBucketTrackerBuckets__read;
[DataDescriptorDependency("UEWatsonBucketTrackerBuckets", "pointer")]
public partial TargetPointer? UEWatsonBucketTrackerBuckets
{
get
{
if (!_UEWatsonBucketTrackerBuckets__read)
{
if (_layouts.TrySelect(Address, out var t, out var b, out var n, "UEWatsonBucketTrackerBuckets"))
_UEWatsonBucketTrackerBuckets__value = _target.ReadPointerField(b, t, n);
else
_UEWatsonBucketTrackerBuckets__value = default(TargetPointer?);
_UEWatsonBucketTrackerBuckets__read = true;
}
return _UEWatsonBucketTrackerBuckets__value;
}
}
private TargetPointer _ThreadLocalDataPtr__value = default!;
private bool _ThreadLocalDataPtr__read;
[DataDescriptorDependency("ThreadLocalDataPtr", "pointer")]
public partial TargetPointer ThreadLocalDataPtr
{
get
{
if (!_ThreadLocalDataPtr__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "ThreadLocalDataPtr");
_ThreadLocalDataPtr__value = _target.ReadPointerField(b, t, n);
_ThreadLocalDataPtr__read = true;
}
return _ThreadLocalDataPtr__value;
}
}
private TargetPointer _DebuggerFilterContext__value = default!;
private bool _DebuggerFilterContext__read;
[DataDescriptorDependency("DebuggerFilterContext", "pointer")]
public partial TargetPointer DebuggerFilterContext
{
get
{
if (!_DebuggerFilterContext__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "DebuggerFilterContext");
_DebuggerFilterContext__value = _target.ReadPointerField(b, t, n);
_DebuggerFilterContext__read = true;
}
return _DebuggerFilterContext__value;
}
}
private uint _InteropDebuggingHijacked__value = default!;
private bool _InteropDebuggingHijacked__read;
[DataDescriptorDependency("InteropDebuggingHijacked", "uint32")]
public partial uint InteropDebuggingHijacked
{
get
{
if (!_InteropDebuggingHijacked__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "InteropDebuggingHijacked");
_InteropDebuggingHijacked__value = _target.ReadField<uint>(b, t, n);
_InteropDebuggingHijacked__read = true;
}
return _InteropDebuggingHijacked__value;
}
}
private Data.ObjectHandle _CurrentCustomDebuggerNotification__value = default!;
private bool _CurrentCustomDebuggerNotification__read;
[DataDescriptorDependency("CurrentCustomDebuggerNotification", "ObjectHandle")]
public partial Data.ObjectHandle CurrentCustomDebuggerNotification
{
get
{
if (!_CurrentCustomDebuggerNotification__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "CurrentCustomDebuggerNotification");
_CurrentCustomDebuggerNotification__value = _target.ReadDataField<Data.ObjectHandle>(b, t, n);
_CurrentCustomDebuggerNotification__read = true;
}
return _CurrentCustomDebuggerNotification__value;
}
}
[DataDescriptorDependency("Id", "uint32")]
[DataDescriptorDependency("OSId", "nuint")]
[DataDescriptorDependency("State", "uint32")]
[DataDescriptorDependency("DebuggerControlledThreadState", "uint32")]
[DataDescriptorDependency("PreemptiveGCDisabled", "uint32")]
[DataDescriptorDependency("Frame", "pointer")]
[DataDescriptorDependency("GCFrame", "pointer")]
[DataDescriptorDependency("CachedStackBase", "pointer")]
[DataDescriptorDependency("CachedStackLimit", "pointer")]
[DataDescriptorDependency("ExposedObject", "ObjectHandle")]
[DataDescriptorDependency("LastThrownObject", "ObjectHandle")]
[DataDescriptorDependency("LastThrownObjectIsUnhandled", "uint32")]
[DataDescriptorDependency("LinkNext", "pointer")]
[DataDescriptorDependency("ExceptionTracker", "pointer")]
[DataDescriptorDependency("UEWatsonBucketTrackerBuckets", "pointer")]
[DataDescriptorDependency("ThreadLocalDataPtr", "pointer")]
[DataDescriptorDependency("DebuggerFilterContext", "pointer")]
[DataDescriptorDependency("InteropDebuggingHijacked", "uint32")]
[DataDescriptorDependency("CurrentCustomDebuggerNotification", "ObjectHandle")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = Id;
_ = OSId;
_ = State;
_ = DebuggerControlledThreadState;
_ = PreemptiveGCDisabled;
_ = Frame;
_ = GCFrame;
_ = CachedStackBase;
_ = CachedStackLimit;
_ = ExposedObject;
_ = LastThrownObject;
_ = LastThrownObjectIsUnhandled;
_ = LinkNext;
_ = ExceptionTracker;
_ = UEWatsonBucketTrackerBuckets;
_ = ThreadLocalDataPtr;
_ = DebuggerFilterContext;
_ = InteropDebuggingHijacked;
_ = CurrentCustomDebuggerNotification;
}
}