コード例 #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 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;
        }
コード例 #3
0
        public void Setup(ClrDumpType clrDumpType)
        {
            this.clrDumpType = clrDumpType;
            ClrDump          = clrDumpType.ClrDump;
            Icon             = Properties.Resources.attributes_display_small;
            Name             = $"#{ClrDump.Id} - Delegates - {clrDumpType.TypeName}";

            dlvDelegateInstances.InitColumns <DelegateInstanceInformation>();
            dlvDelegateInstances.SetUpAddressColumn <DelegateInstanceInformation>(this);
            dlvDelegateInstances.SetUpTypeColumn <DelegateInstanceInformation>(this);
        }
コード例 #4
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)
         );
 }
コード例 #5
0
 public DelegateTargetInformation(ulong address, ClrDumpType clrDumpType, ClrMethod methInfo) : this(address, clrDumpType) => this.methInfo = methInfo;
コード例 #6
0
 public DelegateTargetInformation(ulong address, ClrDumpType clrDumpType)
 {
     Address     = address;
     ClrDumpType = clrDumpType;
 }
コード例 #7
0
        public static bool IsDelegateType(ClrDumpType clrDumpType)
        {
            var delegateType = clrDumpType.ClrDump.GetClrType(typeof(MulticastDelegate).FullName);

            return(clrDumpType.BaseType != null && clrDumpType.BaseType.ClrType == delegateType);
        }
コード例 #8
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);
        }
コード例 #9
0
 public TypeInformations(ClrDumpType dumpType) => this.dumpType = dumpType;
コード例 #10
0
 public ArraysInformation(ClrDumpType arrayType)
 {
     ClrDumpType = arrayType;
     TypeName    = arrayType.ClrType.Name;
 }
コード例 #11
0
 public TypeInformation(ClrDumpType clrDumpType)
 {
     ClrDumpType = clrDumpType;
     TypeName    = TypeHelpers.ManageAlias(ClrDumpType.TypeName);
 }
コード例 #12
0
 public DelegateInstanceInformation(ulong address, ClrDumpType clrDumpType, long targetCount)
 {
     Address     = address;
     ClrDumpType = clrDumpType;
     Targets     = targetCount;
 }
コード例 #13
0
 public ArraysAddressList(ClrDumpType clrDumpType) : base(clrDumpType.ClrDump, clrDumpType.ClrType, clrDumpType.Instances)
 {
 }
コード例 #14
0
 public MethodInformation(ClrDumpType dumpType, ClrMethod clrMethod)
 {
     this.dumpType  = dumpType;
     this.clrMethod = clrMethod;
 }
コード例 #15
0
 public FieldInformation(ClrDumpType dumpType, ClrInstanceField clrField)
 {
     this.dumpType = dumpType;
     this.clrField = clrField;
 }
コード例 #16
0
        public static List <InterfaceInformation> GetInterfaces(ClrDumpType clrDumpType)
        {
            var clrInterfaces = clrDumpType.Interfaces;

            return(clrInterfaces.Select(interf => new InterfaceInformation(clrDumpType.ClrDump, interf)).ToList());
        }
コード例 #17
0
 internal void Setup(ClrDumpType clrDumpType)
 {
     addressList = new TypeInstancesAddressList(clrDumpType);
     Setup(addressList);
 }