概述
本文介绍字节码文件中Method的name_off字段指向的字符串的命名规则,该规则从方舟字节码文件版本12.0.4.0开始生效。
入口函数
模块加载时被执行的函数,名称固定为func_main_0。
非入口函数
其他函数在字节码文件中的名称结构如下:
#前缀#原函数名
下面的章节将会详细介绍前缀和原函数名。
前缀
前缀包含函数定义时所在的作用域信息。包含以下几个部分:
- 作用域标签
- 作用域名称
- 重名序号
前缀的结构为
<作用域标签1><作用域名称1>[<重名序号>]<作用域标签2><作用域名称2><[重名序号]>...<作用域标签n><作用域名称n>[<重名序号>]<作用域标签n+1>
其中<>仅为便于阅读的分割标识,并不包含在实际的前缀中,[]表示可以为空。仅当出现重名作用域时才需要[<重名序号>],即[<重名序号>]可以为空。最后一个作用域标签是本函数所对应的标签。
作用域标签
作用域标签表示作用域的类型。作用域和对应的作用域标签如下表所示,其他的作用域不会被记录进函数名中:
| 作用域 | 作用域标签 | 说明 |
|---|---|---|
| 类 | ~ | class关键字定义的作用域 |
| 实例函数 | > | 类的实例成员函数定义的作用域 |
| 静态函数 | < | 类的静态成员函数定义的作用域 |
| 构造函数 | = | 类的构造函数定义的作用域 |
| 普通函数 | * |

最低0.47元/天 解锁文章
3133

被折叠的 条评论
为什么被折叠?



