2015-12-13 6 views
3

Недавно я обновился до Xcode7, а мой результат изменился при использовании% p format-specifier. Когда я запускаю код (ниже):Изменения в Xcode: спецификатор формата% p возвращает <ptr> вместо шестнадцатеричного значения

IOLog("%s[%p]::%s()\n", getName(), this, \_\_FUNCTION\_\_); 

я получаю:

com_MyCompany_MyDriver [< PTR>] :: Init()

Использование Xcode6 я получаю:

com_MyCompany_MyDriver [0xffffff8015c49a00 ] :: init()

Под Xcode6 Я получаю реальный адрес. В Xcode7 я получаю «ptr». Что изменилось с 6 до 7? Почему% p дает такую ​​абстрактную строку вместо реального адреса?

+0

Каков тип 'this'? – Avi

ответ

1

System Integrity Protection защищает адреса ядра, заменяя их на «< ptr>».

+0

Любой способ или уровень разработчика уровня ОС, чтобы обойти это.? Думаю, я помню, что я слышал что-то в одном из видео WWDC. – cacau