首页
社区
课程
招聘
RTTI中typeinfo所看到的继承关系准不准确?是不是和编译器相关?

老师的课程当中提到:通过子类的type_info结构体可以得到继承关系。
如下图所示:

 

这里看到的结构就是type_info类的布局,翻了一下type_info的定义,文档上面说精确定义随着编译器的不同还略有差异,只是规定必须有几个操作,其中一个就是type_info类必须要有name()函数,返回类型名字的可打印形式。

 

因此type_info类的布局并不一定都是子类type名称后面跟上父类type名称,如上图表现的那样。

 

我的问题就是:
是不是对于ndk编译出来的so来说,type_info的布局都是子类type名称后面跟上父类type名称?

收藏
1条回答
看雪高研 2021-7-11

rtti不同编译器有不同的形式,而且有些编译器还有选项可以去掉rtti。

 

例如:gcc和clang的-fno-rtti

 

https://clang.llvm.org/docs/ClangCommandLineReference.html

回复
[2021秋季班]《安卓高级研修班(网课)》月薪三万计划
  参与学习     143 人
  提问次数     2 个
[2024]《安卓高级研修班(网课)》月薪三万计划班、掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
我的问答 领取收益
0
我的提问
0
我的回答
0
学习收益