Xcode linkmap文件分析

linkmap文件是xcode link时产生的中间文件,一般用于调试,可以精确知道某个地址对应的函数。

它的另一个用处是,分析每个文件生成代码段的大小。对于一些小项目没什么用处,像QQ或微信这种超级App就比较有用了。因为苹果对上架的app有大小限制,代码段超过100M就不允许上架。

linkmap文件格式就不细写了,很简单,一看就明白(不明白的,网上也有很多文章)。手动分析起来比较麻烦,所以我写了一个脚本。

map.lua

支持按文件名、静态库、framework等方式过滤,输出格式为csv,方便用excel分析。

提供独立可执行文件,这样没有lua环境也可以运行

PS: 这里顺便吐槽一下编程语言的选择。脚本语言一般大家都会选择python、ruby或perl,lua也算脚本语言,但一般用于配合C使用,很少单独写cli。python很早以前学的,经历过很长一段时间2.7 vs 3k选择的折磨,直到遇到了ruby。

ruby这门语言很高级,特性很丰富,能玩出很多花样。迷恋过一段时间,一度认为它是最好的语言,除了运行效率很慢。因为有大半年没有用过ruby,再开始写这个脚本的时候,发现连基本的open file都忘记了。不得不去网上找示例代码,从头学起。后来想到了lua,虽然也是超过半年没接触,但它跟C很像,没有那么多奇怪的语法;标准库也相当的简洁,一页纸足矣。于是用lua一个小时就写完,如果用ruby,查文档花的时间可能都不止这点。不仅感叹,C才是真正做到了简洁,即使你多年不用,上手还是那么快。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容