The embodiment of the present application provides a class inheritance structure information acquisition method, device and electronic device, which acquires the pClass Hierarchy Descriptor field based on the RTTI Complete Object Locator structure of the class object to be analyzed. The RTTIClass Hierarchy Descriptor structure is obtained from the directional information of the pClass Hierarchy Descriptor field, and the numBaseClasses field and the pBaseClassArray field are further obtained. According to the numBaseClasses field, the number of base classes of the class object to be analyzed can be obtained, and according to the pBaseClassArray field, an array of RTTIBaseClassDescriptor structures that hold the base class name information can be obtained. Get the name information for all base classes of the class object to be analyzed based on the number of base classes and the RTTIBaseClassDescriptor structure array. In this way, the name information of the base class of the class object to be analyzed can be obtained quickly and effectively, which improves the inconvenience of obtaining the name of the base class existing in the existing technology and improves the development efficiency of the developers.
【技术实现步骤摘要】
类继承结构信息获取方法、装置及电子设备
本专利技术涉及应用开发
,具体而言,涉及一种类继承结构信息获取方法、装置及电子设备。
技术介绍
随着智能设备的应用范围的不断扩大,应用于各类智能设备的应用软件也得到了广泛的关注。其中,在应用软件的开发过程中,开发人员可能需要根据对象的内存结构以获取到该类的完整继承结构信息。经专利技术人研究发现,在现有的技术中对象的完整继承结构信息的方式存在不便的问题。
技术实现思路
有鉴于此,本申请的目的在于,提供一种类继承结构信息获取方法、装置及电子设备以改善上述问题。本申请实施例提供一种类继承结构信息获取方法,所述方法包括:获取待分析类对象中的RTTICompleteObjectLocator结构,访问所述RTTICompleteObjectLocator结构以获得该结构中的pClassHierarchyDescriptor字段;根据所述pClassHierarchyDescriptor字段的指向信息获得RTTIClassHierarchyDescriptor结构,访问所述RTTIClassHierarchyDescriptor结构以获得该结构中的numBaseClasses字段以及pBaseClassArray字段;根据所述numBaseClasses字段获得所述待分析类对象的基类的个数;获得所述pBaseClassArray字段指向的RTTIBaseClassDescriptor结构体数组;根据所述基类的个数依次访问所述RTTIBaseClassDescriptor结构体数组中的数组元素,以获得所述待分析类对象的所有基类的 ...
【技术保护点】
1.一种类继承结构信息获取方法,其特征在于,所述方法包括:获取待分析类对象中的RTTICompleteObjectLocator结构,访问所述RTTICompleteObjectLocator结构以获得该结构中的pClassHierarchyDescriptor字段;根据所述pClassHierarchyDescriptor字段的指向信息获得RTTIClassHierarchyDescriptor结构,访问所述RTTIClassHierarchyDescriptor结构以获得该结构中的numBaseClasses字段以及pBaseClassArray字段;根据所述numBaseClasses字段获得所述待分析类对象的基类的个数;获得所述pBaseClassArray字段指向的RTTIBaseClassDescriptor结构体数组;根据所述基类的个数依次访问所述RTTIBaseClassDescriptor结构体数组中的数组元素,以获得所述待分析类对象的所有基类的名称信息。
【技术特征摘要】
1.一种类继承结构信息获取方法,其特征在于,所述方法包括:获取待分析类对象中的RTTICompleteObjectLocator结构,访问所述RTTICompleteObjectLocator结构以获得该结构中的pClassHierarchyDescriptor字段;根据所述pClassHierarchyDescriptor字段的指向信息获得RTTIClassHierarchyDescriptor结构,访问所述RTTIClassHierarchyDescriptor结构以获得该结构中的numBaseClasses字段以及pBaseClassArray字段;根据所述numBaseClasses字段获得所述待分析类对象的基类的个数;获得所述pBaseClassArray字段指向的RTTIBaseClassDescriptor结构体数组;根据所述基类的个数依次访问所述RTTIBaseClassDescriptor结构体数组中的数组元素,以获得所述待分析类对象的所有基类的名称信息。2.根据权利要求1所述的类继承结构信息获取方法,其特征在于,所述根据所述基类的个数依次访问所述RTTIBaseClassDescriptor结构体数组中的数组元素,以获得所述待分析类对象的所有基类的名称信息的步骤,包括:根据获得的基类的个数访问所述RTTIBaseClassDescriptor结构体数组,以获得所述RTTIBaseClassDescriptor结构体数组中与所述个数一致的多个数组元素的每一个数组元素中的pTypeDescritptor字段;针对获得的每一项数组元素,获得所述数组元素中的pTypeDescritptor字段所指向的TypeDescritptor结构;访问所述TypeDescritptor结构以获得所述TypeDescritptor结构中的name字段,并获得所述name字段处的字符串中记录的该数组元素中的基类的名称信息,以获得所述待分析类对象的所有基类的名称信息。3.根据权利要求1所述的类继承结构信息获取方法,其特征在于,所述获取待分析类对象中的RTTICompleteObjectLocator结构的步骤,包括:获取待分析类对象的虚函数表的地址;根据所述虚函数表的地址获得所述待分析类对象中的RTTICompleteObjectLocator结构的地址;查找所述RTTICompleteObjectLocator结构的地址以获得所述RTTICompleteObjectLocator结构。4.根据权利要求3所述的类继承结构信息获取方法,其特征在于,所述获取待分析类对象的虚函数表的地址的步骤之前,所述方法还包括:检测所述待分析类对象中是否存在虚函数;若不存在虚函数,则生成虚函数表获取失败信息,若存在虚函数,则执行所述获取待分析类对象的虚函数表的地址的步骤。5.根据权利要求3所述的类继承结构信息获取方法,其特征在于,所述获取待分析类对象的虚函数表的地址的步骤之后,所述方法还包括:检测是否启用运行时信息;若未启用运行时信息,则生成结构信息获取失败信息,若已启用运行时信息,则执行根据所述虚函数表的地址获得所述待分析类对象中的RTTICompleteObjectLocator结构的地址的步骤。6.根据权利要求3所述的类继承结构信息获...
【专利技术属性】
技术研发人员:杨亮,张文明,陈少杰,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。