private void CreateTable_NativeMemoryRegions(List <APITable> tables) { APITable table = new APITable(this, m_Snapshot, m_Snapshot.nativeMemoryRegions.dataSet); table.AddColumn( new MetaColumn("parentIndex", "parentIndex", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeMemoryRegions.parentIndex) ); table.AddColumn( new MetaColumn("name", "name", typeof(string), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeMemoryRegions.memoryRegionName) ); table.AddColumn( new MetaColumn("addressBase", "addressBase", typeof(ulong), true, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeMemoryRegions.addressBase) ); table.AddColumn( new MetaColumn("addressSize", "addressSize", typeof(ulong), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(ulong)), "size") , DataArray.MakeColumn(m_Snapshot.nativeMemoryRegions.addressSize) ); table.AddColumn( new MetaColumn("firstAllocationIndex", "firstAllocationIndex", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeMemoryRegions.firstAllocationIndex) ); table.AddColumn( new MetaColumn("numAllocations", "numAllocations", typeof(int), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(int))) , DataArray.MakeColumn(m_Snapshot.nativeMemoryRegions.numAllocations) ); table.CreateTable(kPrefixTableName + "NativeMemoryRegion", kPrefixTableDisplayName + "Native Memory Region"); AddTable(table, tables); }
private void CreateTable_TypeDescriptions(List <APITable> tables) { APITable table = new APITable(this, m_Snapshot, m_Snapshot.typeDescriptions.dataSet); table.AddColumn( new MetaColumn("name", "name", typeof(string), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.typeDescriptions.typeDescriptionName) ); table.AddColumn( new MetaColumn("assembly", "assembly", typeof(string), true, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.typeDescriptions.assembly) ); table.AddColumn( new MetaColumn("isValueType", "isValueType", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.typeDescriptions.flags, (a) => HasBit(a, TypeFlags.kValueType), (ref TypeFlags o, bool v) => SetBit(ref o, TypeFlags.kValueType, v)) ); table.AddColumn( new MetaColumn("isArray", "isArray", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.typeDescriptions.flags, (a) => HasBit(a, TypeFlags.kArray), (ref TypeFlags o, bool v) => SetBit(ref o, TypeFlags.kArray, v)) ); table.AddColumn( new MetaColumn("arrayRank", "arrayRank", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.typeDescriptions.flags, (a) => GetBits(a, TypeFlags.kArrayRankMask, 16), (ref TypeFlags o, int v) => SetBits(ref o, TypeFlags.kArrayRankMask, 16, v)) ); table.AddColumn( new MetaColumn("baseOrElementTypeIndex", "baseOrElementTypeIndex", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.typeDescriptions.baseOrElementTypeIndex) ); table.AddColumn( new MetaColumn("size", "size", typeof(int), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(int)), "size") , DataArray.MakeColumn(m_Snapshot.typeDescriptions.size) ); table.AddColumn( new MetaColumn("typeInfoAddress", "typeInfoAddress", typeof(ulong), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.typeDescriptions.typeInfoAddress) ); table.AddColumn( new MetaColumn("typeIndex", "typeIndex", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.typeDescriptions.typeIndex) ); table.CreateTable(kPrefixTableName + "ManagedType", kPrefixTableDisplayName + "Managed Type"); AddTable(table, tables); }
private void CreateTable_NativeAllocations(List <APITable> tables) { APITable table = new APITable(this, m_Snapshot, m_Snapshot.nativeAllocations.dataSet); table.AddColumn( new MetaColumn("rootReferenceId", "Root Reference Id", typeof(long), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeAllocations.rootReferenceId) ); table.AddColumn( new MetaColumn("memoryRegionIndex", "Memory Region Index", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeAllocations.memoryRegionIndex) ); table.AddColumn( new MetaColumn("allocationSiteId", "Allocation Site Id", typeof(long), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeAllocations.allocationSiteId) ); table.AddColumn( new MetaColumn("address", "Address", typeof(ulong), true, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeAllocations.address) ); table.AddColumn( new MetaColumn("size", "Size", typeof(ulong), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(ulong)), "size") , DataArray.MakeColumn(m_Snapshot.nativeAllocations.size) ); table.AddColumn( new MetaColumn("overheadSize", "Overhead Size", typeof(int), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(int)), "size") , DataArray.MakeColumn(m_Snapshot.nativeAllocations.overheadSize) ); table.AddColumn( new MetaColumn("paddingSize", "Padding Size", typeof(int), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(int)), "size") , DataArray.MakeColumn(m_Snapshot.nativeAllocations.paddingSize) ); table.CreateTable(kPrefixTableName + "NativeAllocation", kPrefixTableDisplayName + "Native Allocation"); AddTable(table, tables); }
private void CreateTable_RootReferences(List <APITable> tables) { APITable table = new APITable(this, m_Snapshot, m_Snapshot.nativeRootReferences.dataSet); table.AddColumn( new MetaColumn("id", "id", typeof(long), true, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeRootReferences.id) ); table.AddColumn( new MetaColumn("areaName", "areaName", typeof(string), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeRootReferences.areaName) ); table.AddColumn( new MetaColumn("objectName", "objectName", typeof(string), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeRootReferences.objectName) ); table.AddColumn( new MetaColumn("accumulatedSize", "accumulatedSize", typeof(ulong), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(ulong)), "size") , DataArray.MakeColumn(m_Snapshot.nativeRootReferences.accumulatedSize) ); table.CreateTable(kPrefixTableName + "RootReference", kPrefixTableDisplayName + "Root Reference"); AddTable(table, tables); }
static ObjectTable() { s_Meta = new Database.MetaTable[(int)ObjectMetaType.Count]; var metaManaged = new Database.MetaTable(); var metaNative = new Database.MetaTable(); s_Meta[(int)ObjectMetaType.Managed] = metaManaged; s_Meta[(int)ObjectMetaType.Native] = metaNative; s_Meta[(int)ObjectMetaType.All] = metaManaged; metaManaged.name = TableName; metaManaged.displayName = TableDisplayName; metaNative.name = TableName; metaNative.displayName = TableDisplayName; var metaColIndex = new Database.MetaColumn("Index", "Index", typeof(int), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(int)), 40); var metaColName = new Database.MetaColumn("Name", "Name", typeof(string), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(string)), 200); var metaColValue = new Database.MetaColumn("Value", "Value", typeof(string), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(string)), 180); var metaColType = new Database.MetaColumn("Type", "Type", typeof(string), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(string)), 250); var metaColDataType = new Database.MetaColumn("DataType", "Data Type", typeof(string), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(string)), 150); var metaColNOName = new Database.MetaColumn("NativeObjectName", "Native Object Name", typeof(string), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(string)), 125); var metaColLength = new Database.MetaColumn("Length", "Length", typeof(int), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.sumpositive, typeof(int)), 50); var metaColStatic = new Database.MetaColumn("Static", "Static", typeof(bool), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.first, typeof(bool)), 50); var metaColRefCount = new Database.MetaColumn("RefCount", "RefCount", typeof(int), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.sumpositive, typeof(int)), 50); var metaColOwnerSize = new Database.MetaColumn("OwnedSize", "Owned Size", typeof(long), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.sumpositive, typeof(long)), 50); var metaColTargetSize = new Database.MetaColumn("TargetSize", "Target Size", typeof(long), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.sumpositive, typeof(long)), 50); var metaColNativeSize = new Database.MetaColumn("NativeSize", "Native Size", typeof(long), false, Grouping.groupByDuplicate, Grouping.GetMergeAlgo(Grouping.MergeAlgo.sumpositive, typeof(long)), 75); var metaColNativeId = new Database.MetaColumn("NativeInstanceId", "Native Instance ID", typeof(int), false, Grouping.groupByDuplicate, null, 75); var metaColAddress = new Database.MetaColumn("Address", "Address", typeof(ulong), false, Grouping.groupByDuplicate, null, 75); var metaColUniqueString = new Database.MetaColumn("UniqueString", "Unique String", typeof(string), true, Grouping.groupByDuplicate, null, 250); var metaManagedCol = new List <Database.MetaColumn>(); metaManagedCol.Add(metaColIndex); metaManagedCol.Add(metaColName); metaManagedCol.Add(metaColValue); metaManagedCol.Add(metaColType); metaManagedCol.Add(metaColDataType); metaManagedCol.Add(metaColNOName); metaManagedCol.Add(metaColLength); metaManagedCol.Add(metaColStatic); metaManagedCol.Add(metaColRefCount); metaManagedCol.Add(metaColOwnerSize); metaManagedCol.Add(metaColTargetSize); metaManagedCol.Add(metaColNativeSize); metaManagedCol.Add(metaColNativeId); metaManagedCol.Add(metaColAddress); metaManagedCol.Add(metaColUniqueString); var metaNativeCol = new List <Database.MetaColumn>(); metaNativeCol.Add(new Database.MetaColumn(metaColIndex)); metaNativeCol.Add(new Database.MetaColumn(metaColName)); metaNativeCol.Add(new Database.MetaColumn(metaColValue)); metaNativeCol.Add(new Database.MetaColumn(metaColType)); metaNativeCol.Add(new Database.MetaColumn(metaColNOName)); metaNativeCol.Add(new Database.MetaColumn(metaColDataType)); metaNativeCol.Add(new Database.MetaColumn(metaColRefCount)); metaNativeCol.Add(new Database.MetaColumn(metaColOwnerSize)); metaNativeCol.Add(new Database.MetaColumn(metaColTargetSize)); metaNativeCol.Add(new Database.MetaColumn(metaColNativeId)); metaNativeCol.Add(new Database.MetaColumn(metaColAddress)); metaNativeCol.Add(new Database.MetaColumn(metaColUniqueString)); metaManaged.SetColumns(metaManagedCol.ToArray()); metaNative.SetColumns(metaNativeCol.ToArray()); }
private void CreateTable_NativeObjects(List <APITable> tables) { APITable table = new APITable(this, m_Snapshot, m_Snapshot.nativeObjects.dataSet); table.AddColumn( new MetaColumn("name", "name", typeof(string), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeObjects.objectName) ); table.AddColumn( new MetaColumn("instanceId", "instanceId", typeof(int), true, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeObjects.instanceId) ); table.AddColumn( new MetaColumn("size", "size", typeof(ulong), false, Grouping.groupByDuplicate , Grouping.GetMergeAlgo(Grouping.MergeAlgo.sum, typeof(ulong)), "size") , DataArray.MakeColumn(m_Snapshot.nativeObjects.size) ); table.AddColumn( new MetaColumn("nativeObjectAddress", "nativeObjectAddress", typeof(ulong), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeObjects.nativeObjectAddress) ); table.AddColumn( new MetaColumn("rootReferenceId", "rootReferenceId", typeof(long), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeObjects.rootReferenceId) ); table.AddColumn( new MetaColumn("nativeTypeArrayIndex", "nativeTypeArrayIndex", typeof(int), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn(m_Snapshot.nativeObjects.nativeTypeArrayIndex) ); table.AddColumn( new MetaColumn("isPersistent", "isPersistent", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.flags, (a) => HasBit(a, ObjectFlags.IsPersistent), (ref ObjectFlags o, bool v) => SetBit(ref o, ObjectFlags.IsPersistent, v)) ); table.AddColumn( new MetaColumn("isDontDestroyOnLoad", "isDontDestroyOnLoad", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.flags, (a) => HasBit(a, ObjectFlags.IsDontDestroyOnLoad), (ref ObjectFlags o, bool v) => SetBit(ref o, ObjectFlags.IsDontDestroyOnLoad, v)) ); table.AddColumn( new MetaColumn("isManager", "isManager", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.flags, (a) => HasBit(a, ObjectFlags.IsManager), (ref ObjectFlags o, bool v) => SetBit(ref o, ObjectFlags.IsManager, v)) ); table.AddColumn( new MetaColumn("HideInHierarchy", "HideInHierarchy", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.HideInHierarchy), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.HideInHierarchy, v)) ); table.AddColumn( new MetaColumn("HideInInspector", "HideInInspector", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.HideInInspector), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.HideInInspector, v)) ); table.AddColumn( new MetaColumn("DontSaveInEditor", "DontSaveInEditor", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.DontSaveInEditor), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.DontSaveInEditor, v)) ); table.AddColumn( new MetaColumn("NotEditable", "NotEditable", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.NotEditable), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.NotEditable, v)) ); table.AddColumn( new MetaColumn("DontSaveInBuild", "DontSaveInBuild", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.DontSaveInBuild), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.DontSaveInBuild, v)) ); table.AddColumn( new MetaColumn("DontUnloadUnusedAsset", "DontUnloadUnusedAsset", typeof(bool), false, Grouping.groupByDuplicate, null) , DataArray.MakeColumn_Transform(m_Snapshot.nativeObjects.hideFlags, (a) => HasBit(a, HideFlags.DontUnloadUnusedAsset), (ref HideFlags o, bool v) => SetBit(ref o, HideFlags.DontUnloadUnusedAsset, v)) ); table.CreateTable(kPrefixTableName + "NativeObject", kPrefixTableDisplayName + "Native Object"); AddTable(table, tables); }