iOS Clang结合Kaleidoscope进行源码分析

看了很多大牛的runtime的文章,很多大牛都在用Clang进行源码分析。实属菜鸟的我也尝试了一下使用Clang进行重写,结果呢~呵呵哒,100000行代码~你去找你改了哪个地方给我看~(机制的小伙伴说可以写备注,然后commond+f一下嘛~可是并没有我们想的这么简单,因为事实上还有其它改动)。

某天惊奇的发现了Kaleidoscope这个软件,其功能就是进行两个及以上文件不同比对,支持图像比对~吊吊吊。

不废话看实现。首先我们创建一个简单的测试类。

比如说HZTestObject吧。

然后在终端中执行cd到文件的当前目录 cd /usr/……………………

clang -rewrite-objc HZTestObject.m

然后系统会帮你创建好HZTestObject.cpp文件

这个时候把它先保存到另外一个地方,因为后面要拿这个进行原版比对。

现在我们就可以往里面进行你想要的东西内容的填充了。

之前看过这位大牛对于runtime的理解,默默偷点内容过来。

OK,在函数的实现中加入这些:

- (instancetype)init{

     self = [super init];

     if (self) {

     [self foo];

    }

   return self;

}

- (void)foo{

NSLog(@"log");

}

添加完后继续在终端执行:

clang -rewrite-objc HZTestObject.m

OK~运行得到了另外一个.cpp文件~然后就Kaleidoscope

iOS Clang结合Kaleidoscope进行源码分析_第1张图片
Kaleidoscope执行结果图


OK 结果如图~关于程序解释参考Chun Tips的解释吧~

你可能感兴趣的:(iOS Clang结合Kaleidoscope进行源码分析)