Пример #1
0
 public ArraysInformation(ClrDumpType arrayType, ulong nbInstances, ulong totalLength, ulong maxLength, ulong totalSize) : this(arrayType)
 {
     NbInstances = nbInstances;
     TotalLength = totalLength;
     MaxLength = maxLength;
     TotalSize = totalSize;
 }
Пример #2
0
 public static void Create(ClrDumpType clrDumpType, UIModule parent, Action<InstancesModule> postInit)
 {
     if (clrDumpType == null)
     {
         MessageBox.Show("No type selected !", "Error", MessageBoxButtons.OK);
         return;
     }
     UIModuleFactory.CreateModule<TypeInstancesModule>(
         mod => { mod.UIModuleParent = parent; mod.Setup(clrDumpType); },
         mod => postInit(mod)
         );
 }
Пример #3
0
        public void Setup(ClrDumpType dumpType)
        {
            type = dumpType.ClrType;
            ClrDump = dumpType.ClrDump;
            pgTypeInfo.SelectedObject = new TypeInformations(dumpType);

            dlvFields.InitColumns<FieldInformation>();
            dlvFields.SetUpTypeColumn<FieldInformation>(this);
            dlvFields.SetObjects(dumpType.Fields.Select(clrField => new FieldInformation(dumpType, clrField)));

            dlvMethods.InitColumns<MethodInformation>();
            dlvMethods.SetUpTypeColumn<MethodInformation>(this);
            dlvMethods.SetObjects(dumpType.Methods.Select(clrMethod => new MethodInformation(dumpType, clrMethod)));

            dtlvParentClasses.InitData<AbstractTypeInformation>();
            dtlvParentClasses.SetUpTypeColumn<AbstractTypeInformation>(this);

            var l = new List<object>();
            var typeInformation = new TypeInformation(dumpType.BaseType);
            var interfaceInformations = InterfaceInformation.GetInterfaces(dumpType);
            l.Add(typeInformation);
            l.AddRange(interfaceInformations);
            dtlvParentClasses.Roots = l;
        }
Пример #4
0
 public ArraysInformation(ClrDumpType  arrayType)
 {
     ClrDumpType = arrayType;
     TypeName = arrayType.ClrType.Name;
 }
Пример #5
0
 internal void Setup(ClrDumpType clrDumpType)
 {
     addressList = new TypeInstancesAddressList(clrDumpType);
     Setup(addressList);
 }
 public TypeInstancesAddressList(ClrDumpType clrDumpType) : this(clrDumpType.ClrDump, clrDumpType.ClrType)
 {
 }
Пример #7
0
 public ClrDumpObject(ClrDumpType clrDumpType, ulong address) : this(clrDumpType.ClrDump, clrDumpType.ClrType, address)
 {
 }
        public TypeInstancesAddressList(ClrDumpType clrDumpType) : this(clrDumpType.ClrDump, clrDumpType.ClrType)
        {

        }
Пример #9
0
 public FieldInformation(ClrDumpType dumpType, ClrInstanceField clrField) 
 {
     this.dumpType = dumpType;
     this.clrField = clrField;
 }
Пример #10
0
        public ArraysAddressList(ClrDumpType clrDumpType) : base(clrDumpType.ClrDump, clrDumpType.ClrType, clrDumpType.Instances)
        {

        }
 public DelegateTargetInformation(ulong address, ClrDumpType clrDumpType, ClrMethod methInfo) : this(address, clrDumpType)
 {
     this.methInfo = methInfo;
 }
Пример #12
0
        internal static List<DelegateInstanceInformation> GetDelegateInstanceInformation(ClrDumpType clrDumpType)
        {
            var clrType = clrDumpType.ClrType;
            var delegateInstanceInformations = new List<DelegateInstanceInformation>();
            var targetField = clrType.GetFieldByName(TargetFieldName);
            var invocCountField = clrType.GetFieldByName(InvocationCountFieldName);

            foreach (var address in clrDumpType.EnumerateInstances())
            {
                var targets = CountTargets(address, clrType, targetField, invocCountField);
                var delegateInstanceInformation = new DelegateInstanceInformation(address, clrDumpType, targets);
                delegateInstanceInformations.Add(delegateInstanceInformation);
            }

            return delegateInstanceInformations;
        }
Пример #13
0
 public ClrDumpObject(ClrDumpType clrDumpType, ulong address) : this(clrDumpType.ClrDump, clrDumpType.ClrType, address)
 {
 }
 public DelegateInstanceInformation(ulong address, ClrDumpType clrDumpType, long targetCount)
 {
     Address = address;
     ClrDumpType = clrDumpType;
     Targets = targetCount;
 }
Пример #15
0
 public TypeInformation(ClrDumpType clrDumpType)
 {
     ClrDumpType = clrDumpType;
     TypeName = TypeHelpers.ManageAlias(ClrDumpType.TypeName);
 }
Пример #16
0
 public MethodInformation(ClrDumpType dumpType, ClrMethod clrMethod)
 {
     this.dumpType = dumpType;
     this.clrMethod = clrMethod;
 }
Пример #17
0
 public TypeInformations(ClrDumpType dumpType)
 {
     this.dumpType = dumpType;
 }
Пример #18
0
 public static List<InterfaceInformation> GetInterfaces(ClrDumpType clrDumpType) {
     var clrInterfaces = clrDumpType.Interfaces;
     return clrInterfaces.Select(interf => new InterfaceInformation(clrDumpType.ClrDump, interf)).ToList();
 }
Пример #19
0
 public static bool IsDelegateType(ClrDumpType clrDumpType)
 {
     var delegateType = clrDumpType.ClrDump.GetClrType(typeof(MulticastDelegate).FullName);
     return clrDumpType.BaseType != null && clrDumpType.BaseType.ClrType == delegateType;
 }
 public DelegateTargetInformation(ulong address, ClrDumpType clrDumpType)
 {
     Address = address;
     ClrDumpType = clrDumpType;
 }