错误代码包含在提供的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系统底层的书籍还不是很多,这本书的质量整体还是不错的,但这种低级错误一直没有被发现可能说明实际用到这本书中内容的人还不是很多吧。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课