} // end _ValidateFieldInfoAndGetName() internal DbgFieldInfo(UserModeDebugger debugger, DbgTypeInfo owningType, ClrMemDiag.Debugger.FieldInfo fieldInfo, ulong modBase) // TODO BUGBUG? There is no module base field in 'f'... is it not possible for a field to be of a type from some other module? : this(debugger, owningType, _ValidateFieldInfoAndGetName(fieldInfo), fieldInfo.FieldOffset, (fieldInfo.PointerFlag != ClrMemDiag.Debugger.PointerFlag.None) && (fieldInfo.PointerFlag != ClrMemDiag.Debugger.PointerFlag.Pointer64), fieldInfo.PointerFlag.HasFlag(ClrMemDiag.Debugger.PointerFlag.Pointer64), fieldInfo.IsArray, //fieldInfo.IsStruct, fieldInfo.IsConstant, fieldInfo.IsStatic, fieldInfo.Size, DbgTypeInfo.GetNamedTypeInfo(debugger, modBase, fieldInfo.TypeId)) { // nothing } // end constructor
public DbgFieldInfo(UserModeDebugger debugger, DbgTypeInfo owningType, string fieldName, uint fieldOffset, bool is32BitPointer, bool is64BitPointer, bool isArray, //bool isStruct, bool isConstant, bool isStatic, uint size, DbgNamedTypeInfo fieldType) : base(debugger) { if (null == owningType) { throw new ArgumentNullException("owningType"); } if (String.IsNullOrEmpty(fieldName)) { throw new ArgumentException("You must supply a field name.", "fieldName"); } if (null == fieldType) { throw new ArgumentNullException("fieldType"); } OwningType = owningType; Type = fieldType; Offset = fieldOffset; Name = fieldName; Is32BitPointer = is32BitPointer; Is64BitPointer = is64BitPointer; IsArray = isArray; //IsStruct = isStruct; IsConstant = isConstant; IsStatic = isStatic; Size = size; } // end constructor