Pull to refresh

Comments 13

Титанический труд однако. Дополню, но раз нашли название переменной и символ экспортируется -- попробуйте просто присвоить ей NULL и слинковаться с этой библиотекой.

Нет, этот символ не экспортируется. Сперва я пытался сделать dlsym(dlopen(0,0), "g_boringssl_log"), но видимо к этой переменной применён __attribute__(hidden)

nm /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libboringssl.dylib | grep g_boringssl_log
00000000000ce178 s _g_boringssl_log

% nm libboringssl.dylib -m | grep g_boringssl_log
00000000000d1fc8 (__DATA,__common) non-external (was a private external) _g_boringssl_log

также у nm есть флаг -g, который заставляет отображать только экспортируемые символы, и в этом режиме _g_boringssl_log пропадает из списка

Хотел бы я знать, за счёт какого механизма lldb всё же позволяет мне обращаться к этому символу по имени, как будто бы он был экспортирован.

Да, я тоже находил этот ответ :) Но двигаться в этом направлении было уже малоперспективно. Хотелось найти какое-то простое решение, которым смогут и другие легко воспользоваться.

На всякий случай попробовал слинковаться с libboringssl.dylib и добавить extern void *g_boringssl_log, но ожидаемо получил ошибку линковки Undefined symbol: _g_boringssl_log. Если бы это сработало, я бы наверное предпочёл именно такое решение.

UFO just landed and posted this here

В xcode консоли тоже можно фильтровать по любому тексту

А если вам мозолит глаз такая ошибка coretelephony в логах Xcode при запуске на симуляторе:

[Client] Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated: failed at lookup with error 3 - No such process." UserInfo={NSDebugDescription=The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated: failed at lookup with error 3 - No such process.}

то её можно заглушить выполнив команду в консоли:

xcrun simctl spawn booted log config --subsystem com.apple.CoreTelephony --mode "level:off"

Вернуть обратно можно так:

xcrun simctl spawn booted log config --subsystem com.apple.CoreTelephony --mode "level:default"

Sign up to leave a comment.

Articles