关于swift:swiftc-demangle符号清洗

3次阅读

共计 677 个字符,预计需要花费 2 分钟才能阅读完成。

Swift 符号荡涤

swift 在 crash 堆栈里的信息是蛮奇怪的, 比如说这种:
_TtC16MTSS_SDKTestDemo13WXCrashTestVC
其实他这是通过 Name demangle 名字命名技术之后,让人看起来诡异,如何荡涤成失常的符号呢:

xcrun swift-demangle __TFV5hello4Rectg9subscriptFOS_9DirectionSi

荡涤成人眼可看的符号了

说到底 swift 的 Name demangle 是抄的 c ++ 的 Name demangle 技术,swift 的符号命名规定详见 swift 符号规定

oc-Swift 混编 oc 调用 swift 类的

app 名 -Swift.h 文件, 这里会寄存着 swift 本义成 oc 的类的列表,如果在 oc 里须要通过 runtime 调用 swift 类,则须要调用本义之后的 swift 类名,如下图中的_TtC16MTSS_SDKTestDemo13WXCrashTestVC

如何寻找编译之后的 app 名 -Swift.h 文件, 找到编译日志里的 swiftFileList 地位就行了,和这个放在同一级目录下,

C++ 符号荡涤

c++filt -n  _ZN5physx2Gu24PCMMeshContactGenerationC2ERKNS_6shdfnd3aos6FloatVES6_RKNS3_12PsTransformVES9_RNS0_33MultiplePersistentContactManifoldERNS0_13ContactBufferE

一般来说 c ++filt 命令要加 - n 参数,能力失常解析

参考文章:c++ 符号荡涤

正文完
 0