错误代码包含在提供的vmmap.c中,对应书中第460页(中文版417页),这部分代码的功能是把属性一致的连续内存段合并后输出,但把info.shared != prev_info.shared写成了info.shared != prev_info.reserved,结果导致错误的把属性不一致的内存段进行了合并。 图1 Mac OS X and iOS Internals书中的代码截图 另外,http://www.newosxbook.com/网站提供的代码错误更多,当address >= 0x40000000的return会导致最后一块内存信息不会被输出。 图2 http://www.newosxbook.com/网站提供的vmmap.c源码 关于Mac OS X和IOS系统底层的书籍还不是很多,这本书的质量整体还是不错的,但这种低级错误一直没有被发现可能说明实际用到这本书中内容的人还不是很多吧。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!