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++ 符号荡涤