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