我最近升级到Xcode7,在使用%p格式说明符时,我的输出发生了更改。当我运行代码(如下):
IOLog("%s[%p]::%s()n", getName(), this, __FUNCTION__);
我得到:
com_MyCompany_MyDriver[lt;ptr>]::init()
使用Xcode6我得到:
com_MyCompany_MyDriver[0xfffff8015c49a00]::init()
在Xcode6下,我得到了一个真实的地址。在Xcode7下,我得到了"ptr"。从6点到7点发生了什么变化?为什么%p给出这样一个抽象字符串而不是实际地址?
系统完整性保护通过将内核地址替换为'<ptr>'。