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
всё же позволяет мне обращаться к этому символу по имени, как будто бы он был экспортирован.
del
На всякий случай попробовал слинковаться с libboringssl.dylib
и добавить extern void *g_boringssl_log
, но ожидаемо получил ошибку линковки Undefined symbol: _g_boringssl_log
. Если бы это сработало, я бы наверное предпочёл именно такое решение.
А если вам мозолит глаз такая ошибка 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"
[boringssl] Failed to log metrics