在尝试从使用Cocos2d-x制作的Android游戏中了解.so时,我遇到了以下标识符(在拆解后):

SceneActionMap::updateTalkMode(float)::$_37
SceneActionMap::onTouchEndedTalk(cocos2d::Touch*, cocos2d::Event*)::$_38

我对ELF和C ++ ABI仍然有些犹豫,但是这些名称可以在.rodata中找到,并在.data.rel.ro中被某种与RTTI相关的结构所引用。

是哪种的实体是$ _37和$ _38?这些匿名函数是由NDK生成的,还是有关其他函数的某种元数据?

#1 楼

它是lambda函数,
作为Google https://github.com/Microsoft/vscode-cpptools/issues/2117
中的示例堆栈跟踪