When I create a new Single View App from in Xcode Version 11.3 (11C29) and run it all is ok.
When I turn on Thread Sanitize
And try to run the very same app, I get Thread 1: signal SIGABRT
this is the backtrace
(lldb) bt
* thread #1, stop reason = signal SIGABRT
* frame #0: 0x00007fff523d5bea libsystem_kernel.dylib`__abort_with_payload + 10
frame #1: 0x00007fff523d74f3 libsystem_kernel.dylib`abort_with_payload_wrapper_internal + 80
frame #2: 0x00007fff523d74a3 libsystem_kernel.dylib`abort_with_reason + 19
frame #3: 0x00007fff52469974 libsystem_pthread.dylib`pthread_self.cold.1 + 24
frame #4: 0x00007fff52462fe3 libsystem_pthread.dylib`pthread_self + 34
frame #5: 0x0000000105f2316b libclang_rt.tsan_iossim_dynamic.dylib`__tsan::cur_thread() + 11
frame #6: 0x0000000105ef8985 libclang_rt.tsan_iossim_dynamic.dylib`wrap_sysctlbyname + 37
frame #7: 0x00007fff52470331 libsystem_sim_kernel.dylib`assert_simulator_supported_host + 44
frame #8: 0x00007fff4ff167c1 libSystem.B.dylib`libSystem_initializer + 78
frame #9: 0x0000000105e2a3a7 dyld_sim`ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 517
frame #10: 0x0000000105e2a7b8 dyld_sim`ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 40
frame #11: 0x0000000105e259a2 dyld_sim`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 456
frame #12: 0x0000000105e2590f dyld_sim`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 309
frame #13: 0x0000000105e2590f dyld_sim`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 309
frame #14: 0x0000000105e2590f dyld_sim`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 309
frame #15: 0x0000000105e247a6 dyld_sim`ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 188
frame #16: 0x0000000105e24846 dyld_sim`ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 82
frame #17: 0x0000000105e19046 dyld_sim`dyld::initializeMainExecutable() + 129
frame #18: 0x0000000105e1d0fc dyld_sim`dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 3831
frame #19: 0x0000000105e181cd dyld_sim`start_sim + 122
frame #20: 0x000000010e7f68cc dyld`dyld::useSimulatorDyld(int, macho_header const*, char const*, int, char const**, char const**, char const**, unsigned long*, unsigned long*) + 2308
frame #21: 0x000000010e7f4575 dyld`dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 818
frame #22: 0x000000010e7ef227 dyld`dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) + 453
frame #23: 0x000000010e7ef025 dyld`_dyld_start + 37
(lldb)
I'm I missing something or using Thread Sanitizer incorrectly.
EDIT: I've opened an issue with Apple in their feedback assistant with the ID FB7513235. My open ticket in the feedback assistant indicates there are similar reported issues.
issue resolved in Xcode 11.3.1
Resolved an issue that prevented Xcode from launching processes with
Thread Sanitizer enabled on macOS Catalina 10.15.2. (57822138)
see Xcode 11.3.1 Release Notes
Related
My app crashes without any error log while calling gotICECandidate when remote candidates received.
The exception I got from server is this.
backtrace:
(lldb) bt
* thread #36, name = 'VoiceProcessThread', stop reason = EXC_BAD_ACCESS (code=1, address=0xb00000001062662c)
* frame #0: 0x0000000100bee6d4 PortalApp`cricket::BaseChannel::SendPacket(bool, rtc::Buffer*, rtc::PacketOptions const&) + 204
frame #1: 0x0000000100bbbdd0 PortalApp`cricket::MediaChannel::DoSendPacket(rtc::Buffer*, bool, rtc::PacketOptions const&) + 96
frame #2: 0x0000000100be99a4 PortalApp`cricket::WebRtcVoiceMediaChannel::SendRtcp(unsigned char const*, unsigned long) + 108
frame #3: 0x0000000100db528c PortalApp`webrtc::voe::Channel::SendRtcp(unsigned char const*, unsigned long) + 132
frame #4: 0x0000000100d4de08 PortalApp`non-virtual thunk to webrtc::PacketContainer::OnPacketReady(unsigned char*, unsigned long) + 36
frame #5: 0x0000000100d3f894 PortalApp`webrtc::rtcp::RtcpPacket::BuildExternalBuffer(unsigned char*, unsigned long, webrtc::rtcp::RtcpPacket::PacketReadyCallback*) const + 80
frame #6: 0x0000000100d3f820 PortalApp`webrtc::rtcp::RtcpPacket::Build(webrtc::rtcp::RtcpPacket::PacketReadyCallback*) const + 60
frame #7: 0x0000000100d4d228 PortalApp`webrtc::RTCPSender::SendCompoundRTCP(webrtc::RTCPSender::FeedbackState const&, std::__1::set<webrtc::RTCPPacketType, std::__1::less<webrtc::RTCPPacketType>, std::__1::allocator<webrtc::RTCPPacketType> > const&, int, unsigned short const*, bool, unsigned long long) + 596
frame #8: 0x0000000100d4c614 PortalApp`webrtc::RTCPSender::SendRTCP(webrtc::RTCPSender::FeedbackState const&, webrtc::RTCPPacketType, int, unsigned short const*, bool, unsigned long long) + 112
frame #9: 0x0000000100d3e2ec PortalApp`webrtc::ModuleRtpRtcpImpl::Process() + 972
frame #10: 0x0000000100ea3d6c PortalApp`webrtc::ProcessThreadImpl::Process() + 188
frame #11: 0x0000000100ceebb8 PortalApp`rtc::PlatformThread::Run() + 76
frame #12: 0x0000000100ceeb60 PortalApp`rtc::PlatformThread::StartThread(void*) + 12
frame #13: 0x00000001943e82c0 libsystem_pthread.dylib`_pthread_body + 128
frame #14: 0x00000001943e8220 libsystem_pthread.dylib`_pthread_start + 44
frame #15: 0x00000001943ebcdc libsystem_pthread.dylib`thread_start + 4
When I use WebTRTC Video, I got the delegate method, And I got the RTCICEGatheringState == RTCICEGatheringComplete, then Crashed. Please help me.
peerConnection:(RTCPeerConnection *)peerConnection iceGatheringChanged:(RTCICEGatheringState)newState
* thread #28, name = 'Thread 0x0x10a706e70', stop reason = breakpoint 2.1
frame #0: 0x00000001864085a4 libsystem_malloc.dylib`malloc_error_break
frame #1: 0x00000001864081bc libsystem_malloc.dylib`nano_common_error + 240
* frame #2: 0x00000001863fc890 libsystem_malloc.dylib`nanov2_allocate_from_block$VARIANT$mp + 548
frame #3: 0x00000001863fbc1c libsystem_malloc.dylib`nanov2_allocate$VARIANT$mp + 176
frame #4: 0x00000001863fbb1c libsystem_malloc.dylib`nanov2_malloc$VARIANT$mp + 60
frame #5: 0x00000001863f7828 libsystem_malloc.dylib`malloc_zone_malloc + 156
frame #6: 0x00000001863f8c0c libsystem_malloc.dylib`malloc + 32
frame #7: 0x0000000103366954 qim_appstore`bn_wexpand + 84
frame #8: 0x000000010336f0d4 qim_appstore`BN_lshift + 84
frame #9: 0x0000000103367ee4 qim_appstore`BN_div + 384
frame #10: 0x0000000103368320 qim_appstore`BN_nnmod + 52
frame #11: 0x00000001033684ac qim_appstore`BN_mod_mul + 132
frame #12: 0x00000001033857e8 qim_appstore`ec_GFp_simple_is_on_curve + 260
frame #13: 0x000000010337ad8c qim_appstore`EC_POINT_set_affine_coordinates_GFp + 112
frame #14: 0x000000010337a778 qim_appstore`EC_GROUP_new_by_curve_name + 664
frame #15: 0x000000010337bd44 qim_appstore`EC_KEY_new_by_curve_name + 40
frame #16: 0x000000010338b240 qim_appstore`eckey_type2param + 92
frame #17: 0x000000010338aa70 qim_appstore`eckey_pub_decode + 92
frame #18: 0x00000001033a6d1c qim_appstore`X509_PUBKEY_get + 148
frame #19: 0x00000001033b5ff4 qim_appstore`ssl3_get_server_certificate + 468
frame #20: 0x00000001033b2114 qim_appstore`dtls1_connect + 1160
frame #21: 0x000000010351d8f0 qim_appstore`rtc::OpenSSLStreamAdapter::ContinueSSL() + 164
frame #22: 0x000000010351d59c qim_appstore`rtc::OpenSSLStreamAdapter::OnEvent(rtc::StreamInterface*, int, int) + 572
frame #23: 0x0000000103526860 qim_appstore`sigslot::signal3<rtc::StreamInterface*, int, int, sigslot::single_threaded>::operator()(rtc::StreamInterface*, int, int) + 96
frame #24: 0x000000010353a928 qim_appstore`cricket::StreamInterfaceChannel::OnPacketReceived(char const*, unsigned long) + 60
frame #25: 0x000000010353d108 qim_appstore`cricket::DtlsTransportChannelWrapper::HandleDtlsPacket(char const*, unsigned long) + 84
frame #26: 0x000000010353af3c qim_appstore`cricket::DtlsTransportChannelWrapper::OnReadPacket(cricket::TransportChannel*, char const*, unsigned long, rtc::PacketTime const&, int) + 88
frame #27: 0x000000010353d084 qim_appstore`sigslot::signal5<cricket::TransportChannel*, char const*, unsigned long, rtc::PacketTime const&, int, sigslot::single_threaded>::operator()(cricket::TransportChannel*, char const*, unsigned long, rtc::PacketTime const&, int) + 116
frame #28: 0x0000000103541264 qim_appstore`cricket::P2PTransportChannel::OnReadPacket(cricket::Connection*, char const*, unsigned long, rtc::PacketTime const&) + 84
frame #29: 0x000000010354ce90 qim_appstore`sigslot::signal4<cricket::Connection*, char const*, unsigned long, rtc::PacketTime const&, sigslot::single_threaded>::operator()(cricket::Connection*, char const*, unsigned long, rtc::PacketTime const&) + 108
frame #30: 0x000000010354ca54 qim_appstore`cricket::Connection::OnReadPacket(char const*, unsigned long, rtc::PacketTime const&) + 216
frame #31: 0x00000001035784a4 qim_appstore`cricket::UDPPort::HandleIncomingPacket(rtc::AsyncPacketSocket*, char const*, unsigned long, rtc::SocketAddress const&, rtc::PacketTime const&) + 12
frame #32: 0x000000010350b0dc qim_appstore`sigslot::signal5<rtc::AsyncPacketSocket*, char const*, unsigned long, rtc::SocketAddress const&, rtc::PacketTime const&, sigslot::single_threaded>::operator()(rtc::AsyncPacketSocket*, char const*, unsigned long, rtc::SocketAddress const&, rtc::PacketTime const&) + 116
frame #33: 0x000000010350b608 qim_appstore`rtc::AsyncUDPSocket::OnReadEvent(rtc::AsyncSocket*) + 112
frame #34: 0x0000000103523090 qim_appstore`sigslot::signal1<rtc::AsyncSocket*, sigslot::multi_threaded_local>::ope
rator()(rtc::AsyncSocket*) + 76
frame #35: 0x00000001035202b0 qim_appstore`rtc::SocketDispatcher:
:OnEvent(unsigned int, int) + 120
frame #36: 0x0000000103520a9c qim_appstore`rtc::PhysicalSocketServer::Wait(int, bool) + 852
frame #37: 0x0000000103513804 qim_appstore`rtc::MessageQueue::Get(rtc::Message*, int, bool) + 816
frame #38: 0x0000000103527d70 qim_appstore`rtc::Thread::ProcessMessages(int) + 108
frame #39: 0x0000000103527bfc qim_appstore`rtc::Thread::PreRun(void*) + 112
frame #40: 0x000000018643b1e4 libsystem_pthread.dylib`_pthread_body + 128
frame #41: 0x000000018643b164 libsystem_pthread.dylib`_pthread_start + 40
frame #42: 0x000000018643a070 libsystem_pthread.dylib`thread_start + 4
I'm receiving crash logs for a bug that I cannot reproduce. The crash only happens on 32bit devices (iPad 4, 3, iPad Mini) so I believe that is a major part of the issue.
The crash occurs on the audio thread, while calculating coefficients for a filter. The filter is composed of a C struct and related functions... once I had an issue with needing to align structs correctly for 32-bit devices, but I'm not sure that's the case here (and I'm not sure how I would test that!)
Beyond that, I'm stumped. Here are the first couple lines of the function in which it crashes. The cos function is the second to last frame of the crash log.
void _calculateWithoutUpdatingSetup(ONCBiquadFilter * filter) {
if (filter->res < 0.01) filter->res = 0.01;
filter->omega = 2 * M_PI * filter->freq / sampleRate;
filter->omegaS = sin(filter->omega);
filter->omegaC = cos(filter->omega);
filter->alpha = filter->omegaS / (2 * filter->res);
///... do a bunch of maths to calculate filter settings
}
And here's the crash log :
18
Crashed: AURemoteIO::IOThread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000
Crashed: AURemoteIO::IOThread
0 myFramework 0x41077a _calculateWithoutUpdatingSetup + 2417
1 libsystem_m.dylib 0x20b229d8 cos + 584
2 myFramework 0x40fa2f ONCBiquadFilterCalculateCoefficients + 14
3 myFramework 0x40fd03 ONCBiquadFilterSetFrequencyAndResonance + 214
4 myFramework 0x414c7b ONCAterotVoiceSetFilterCutoffAndResonance + 206
5 myFramework 0x407677 ONCAterotPolyVoicePlay + 452
6 myFramework 0x3e0d61 ONCAterotLoopStructTick + 1092
7 myApp 0x21333 DSPRenderCallback (ONCAterotAudioController+AudioRenderCallbacks.m:367)
8 myApp 0x20b0f renderCallback (ONCAterotAudioController+AudioRenderCallbacks.m:73)
9 AudioToolbox 0x233224b3 AUInputElement::PullInput(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long) + 126
10 AudioToolbox 0x234379ab AUMatrixMixer::Render(unsigned long&, AudioTimeStamp const&, unsigned long) + 554
11 AudioToolbox 0x234385a5 AUMatrixMixer::RenderBus(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long) + 104
12 AudioToolbox 0x23227d01 AUBase::DoRenderBus(unsigned long&, AudioTimeStamp const&, unsigned long, AUOutputElement*, unsigned long, AudioBufferList&) + 148
13 AudioToolbox 0x23227b91 AUBase::DoRender(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long, AudioBufferList&) + 740
14 AudioToolbox 0x232278a3 AUMethodRender(void*, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList*) + 46
15 myApp 0x65d29 eqCallBack (ONCAterotAudioController+effectCallbacks.m:110)
16 AudioToolbox 0x233224b3 AUInputElement::PullInput(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long) + 126
17 AudioToolbox 0x233f21b1 AUDynamicsProcessor::Render(unsigned long&, AudioTimeStamp const&, unsigned long) + 308
18 AudioToolbox 0x23227d01 AUBase::DoRenderBus(unsigned long&, AudioTimeStamp const&, unsigned long, AUOutputElement*, unsigned long, AudioBufferList&) + 148
19 AudioToolbox 0x23227b91 AUBase::DoRender(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long, AudioBufferList&) + 740
20 AudioToolbox 0x232278a3 AUMethodRender(void*, unsigned long*, AudioTimeStamp const*, unsigned long, unsigned long, AudioBufferList*) + 46
21 AudioToolbox 0x23318d89 AUConverterBase::RenderBus(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long) + 396
22 AudioToolbox 0x23227d01 AUBase::DoRenderBus(unsigned long&, AudioTimeStamp const&, unsigned long, AUOutputElement*, unsigned long, AudioBufferList&) + 148
23 AudioToolbox 0x23227b91 AUBase::DoRender(unsigned long&, AudioTimeStamp const&, unsigned long, unsigned long, AudioBufferList&) + 740
24 AudioToolbox 0x2330864b AURemoteIO::PerformIO(unsigned long, unsigned int, unsigned int, AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const*, AudioBufferList*, int&) + 506
25 AudioToolbox 0x23309851 AURIOCallbackReceiver_PerformIO + 596
26 AudioToolbox 0x232ff67b _XPerformIO + 166
27 AudioToolbox 0x23245d69 mshMIGPerform + 184
28 AudioToolbox 0x232d6533 MSHMIGDispatchMessage + 34
29 AudioToolbox 0x23308973 AURemoteIO::IOThread::Run() + 118
30 AudioToolbox 0x2330c331 AURemoteIO::IOThread::Entry(void*) + 8
31 AudioToolbox 0x232238db CAPThread::Entry(CAPThread*) + 186
32 libsystem_pthread.dylib 0x20bbcc7f _pthread_body + 138
33 libsystem_pthread.dylib 0x20bbcbf3 _pthread_start + 110
34 libsystem_pthread.dylib 0x20bbaa08 thread_start + 8
Thanks for any guidance in solving this!
Update : I did notice a couple of mistakes on my part -- freq, res, and sampleRate are all floats, while the rest of the values are doubles. I could see this maybe being part of the issue, though I sort of doubt it as they should just be getting promoted into doubles.
I have this crasher which happens a lot in our production app but we are not able to reproduce it. It happened only on iOS8 using iOS8 SDK.
HTTPReadFilter::doPlainRead(StreamReader*, unsigned char*, long, CFStreamError*, unsigned char*) inside CFNetwork. Crashed: com.apple.NSURLConnectionLoader EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x00000000
StackTrace:
libsystem_platform.dylib
_platform_memmove + 185
CFNetwork
HTTPReadFilter::doPlainRead(StreamReader*, unsigned char*, long, CFStreamError*, unsigned char*) + 178
CFNetwork
HTTPReadFilter::_streamImpl_Read(unsigned char*, long, CFStreamError*, unsigned char*) + 394
CFNetwork
CoreStreamBase::_streamInterface_Read(unsigned char*, long) + 98
CFNetwork
HTTPNetStreamInfo::_streamImpl_Read(__CFReadStream*, unsigned char*, long, CFStreamError*, unsigned char*) + 306
CFNetwork
CFNetworkReadStream::httpStreamRead(__CFReadStream*, unsigned char*, long, CFStreamError*, unsigned char*, void*) + 44
CoreFoundation
CFReadStreamRead + 328
CFNetwork
HTTPNetStreamInfo::_readStreamClientCallBack(__CFReadStream*, unsigned long) + 128
CFNetwork
CFNetworkReadStream::_readStreamClientCallBackCallBack(__CFReadStream*, unsigned long, void*) + 38
CoreFoundation
_signalEventSync + 146
CoreFoundation
_cfstream_shared_signalEventSync + 342
CoreFoundation
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
CoreFoundation
CFRunLoopRunInMode + 106
CFNetwork
+[NSURLConnection(Loader) _resourceLoadLoop:] + 486
Foundation
__NSThread__main__ + 1118
libsystem_pthread.dylib
_pthread_start + 118
Any help is greatly appreciated!!
That seems to be really an iOS 8 bug. Try to not set a custom size for your NSURLCache. Check this https://devforums.apple.com/message/1102182#1102182
I have an application with several UIWebViews inside UITableViewCells that are rendering some locally loaded HTML, with some additional Javascript libraries applied (such as Prettify.js).
There is, at most, one UIWebView inside of a UITableViewCell. Things work well overall, except that, when I have many UIWebViews loading, and I rotate the device back and forth, I am getting repeatable crashes from WebCore::RenderBlock.
Some wacky ideas I have tried (and failed):
Disable rotation while the UIWebViews are loading
Use dispatch_semaphor_t to prevent the rotation from happening.
This ends up blocking the main thread, a strategy which fails
because UITableView updates have to occur on the
main thread, resulting in a deadlock.
Use an NSOperationQueue to delay the tableView updates a bit if a rotation occur.
I am beginning to run out of ideas, and am looking for new approaches on how to attack this issue. Has anyone encountered this sort of issue before?
My current conclusion is that this occurs because of some thread synchronization problem between UIWebView -> WebCore and the UIKit rotation/rendering thread.
thread #1: tid = 0x2355ad, 0x0077c976 libgmalloc.dylib`breakIfDebugging + 158, queue = 'com.apple.main-thread, stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
frame #0: 0x0077c976 libgmalloc.dylib`breakIfDebugging + 158
frame #1: 0x0077cbcf libgmalloc.dylib`GMmalloc_zone_malloc_internal + 182
frame #2: 0x0077bcfe libgmalloc.dylib`GMmalloc_zone_malloc + 161
frame #3: 0x0077bb7f libgmalloc.dylib`GMmalloc_zone_calloc + 180
frame #4: 0x0077b7a4 libgmalloc.dylib`GMcalloc + 58
frame #5: 0x0d82f3cd libCGFreetype.A.dylib`(anonymous namespace)::allocate(FT_MemoryRec_*, long) + 25
frame #6: 0x0d8311f5 libCGFreetype.A.dylib`ft_mem_alloc + 29
frame #7: 0x0d841991 libCGFreetype.A.dylib`T1_Face_Init + 611
frame #8: 0x0d832565 libCGFreetype.A.dylib`open_face + 155
frame #9: 0x0d831fbe libCGFreetype.A.dylib`FT_Open_Face + 390
frame #10: 0x0d826ccc libCGFreetype.A.dylib`(anonymous namespace)::open_face(FT::stream*, long, __CFString const*) + 79
frame #11: 0x0d826e26 libCGFreetype.A.dylib`FT::font::create_fonts_with_path(__CFString const*) + 86
frame #12: 0x0d82f536 libCGFreetype.A.dylib`(anonymous namespace)::create_private_data_with_path(__CFString const*) + 34
frame #13: 0x009dffa8 CoreGraphics`CGFontCreateFontsWithPath + 44
frame #14: 0x0090132e CoreGraphics`add_fonts_at_path_locked + 42
frame #15: 0x0090229f CoreGraphics`fault_all_locked + 212
frame #16: 0x00901e3f CoreGraphics`apply_function_locked + 42
frame #17: 0x00901de3 CoreGraphics`CGFontDBApplyFunction + 77
frame #18: 0x009e00a0 CoreGraphics`CGFontApplyFunction + 88
frame #19: 0x00b8f87b CoreText`TDescriptorSource::CreateAllDescriptorsCache(void*) + 73
frame #20: 0x032d84b0 libdispatch.dylib`_dispatch_client_callout + 14
frame #21: 0x032c7e17 libdispatch.dylib`dispatch_once_f + 182
frame #22: 0x00b8fb59 CoreText`TDescriptorSource::CopyCachedAllDescriptors() + 171
frame #23: 0x00b8fb78 CoreText`TDescriptorSource::CopyAllDescriptorsInternal(bool, CFComparisonResult (*)(void const*, void const*, void*)) const + 26
frame #24: 0x00b8fcdf CoreText`TDescriptorSource::CopyAllDescriptors() const + 79
frame #25: 0x00b9153e CoreText`TDescriptorSource::CopyDescriptorsForRequest(__CFDictionary const*, __CFSet const*, CFComparisonResult (*)(void const*, void const*, void*), void*, unsigned long) const + 3040
frame #26: 0x00b9070f CoreText`TDescriptorSource::CopySystemWideFallbackDescriptor(CGFont*, unsigned short const*, long, UIFontFlag) const + 797
frame #27: 0x00b91f16 CoreText`TDescriptorSource::CopySystemWideFallbackDescriptor(CGFont*, __CFString const*, CFRange, UIFontFlag) const + 210
frame #28: 0x00b7e8b6 CoreText`TFontCascade::CreateSystemWideFallback(__CTFont const*, __CFString const*, CFRange) const + 132
frame #29: 0x00b7e35c CoreText`TFontCascade::CreateFallback(__CTFont const*, __CFString const*, CTEmojiPolicy) const + 1446
frame #30: 0x00b53d0b CoreText`TGlyphEncoder::AppendUnmappedCharRun(TCFRef<CTRun*>&, __CTFont const*, CFRange, CFRange, TGlyphList<TDeletedGlyphIndex>&, TGlyphList<TDeletedGlyphIndex>&, TFontCascade const&, TGlyphEncoder::ClusterMatching) + 453
frame #31: 0x00b538b7 CoreText`TGlyphEncoder::RunUnicodeEncoderRecursively(TCFRef<CTRun*>&&, __CTFont const*, CFRange, TGlyphList<TDeletedGlyphIndex>&, TGlyphList<TDeletedGlyphIndex>&, TFontCascade const*, TGlyphEncoder::ClusterMatching, bool) + 1443
frame #32: 0x00b5326e CoreText`TGlyphEncoder::RunUnicodeEncoder(TCFRef<CTRun*>&&, __CTFont const*, CFRange, TGlyphList<TDeletedGlyphIndex>&, TFontCascade const*) + 166
frame #33: 0x00b52c89 CoreText`TGlyphEncoder::EncodeChars(CFRange, TAttributes const&, TGlyphList<TDeletedGlyphIndex>&, TGlyphEncoder::Fallbacks) + 1257
frame #34: 0x00b67a65 CoreText`TTypesetterUniChar::Initialize() + 355
frame #35: 0x00b678c6 CoreText`TTypesetterUniChar::TTypesetterUniChar(unsigned short const* (*)(long, long*, __CFDictionary const**, void*), void (*)(unsigned short const*, void*), void*) + 178
frame #36: 0x00b576ac CoreText`CTLineCreateWithUniCharProvider + 80
frame #37: 0x07f79c4a WebCore`WebCore::ComplexTextController::collectComplexTextRunsForCharacters(unsigned short const*, unsigned int, unsigned int, WebCore::SimpleFontData const*) + 1674
frame #38: 0x07f7503c WebCore`WebCore::ComplexTextController::collectComplexTextRuns() + 620
frame #39: 0x07f749f8 WebCore`WebCore::ComplexTextController::ComplexTextController(WebCore::Font const*, WebCore::TextRun const&, bool, WTF::HashSet<WebCore::SimpleFontData const*, WTF::PtrHash<WebCore::SimpleFontData const*>, WTF::HashTraits<WebCore::SimpleFontData const*> >*, bool) + 696
frame #40: 0x07f78ab8 WebCore`WebCore::TextLayout::TextLayout(WebCore::RenderText*, WebCore::Font const&, float) + 152
frame #41: 0x07f7457a WebCore`WebCore::Font::createLayout(WebCore::RenderText*, float, bool) const + 170
frame #42: 0x089baaa7 WebCore`WebCore::RenderBlock::LineBreaker::nextSegmentBreak(WebCore::BidiResolver<WebCore::InlineIterator, WebCore::BidiRun>&, WebCore::LineInfo&, WebCore::RenderBlock::RenderTextInfo&, WebCore::RenderBlock::FloatingObject*, unsigned int, WTF::Vector<WebCore::WordMeasurement, 64ul, WTF::CrashOnOverflow>&) + 6855
frame #43: 0x089b42f7 WebCore`WebCore::RenderBlock::layoutRunsAndFloatsInRange(WebCore::LineLayoutState&, WebCore::BidiResolver<WebCore::InlineIterator, WebCore::BidiRun>&, WebCore::InlineIterator const&, WebCore::BidiStatus const&, unsigned int) + 583
frame #44: 0x089b3438 WebCore`WebCore::RenderBlock::layoutRunsAndFloats(WebCore::LineLayoutState&, bool) + 1336
frame #45: 0x089b6dbf WebCore`WebCore::RenderBlock::layoutInlineChildren(bool, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 2543
frame #46: 0x089901de WebCore`WebCore::RenderBlock::layoutBlock(bool, WebCore::LayoutUnit) + 1614
frame #47: 0x0898f541 WebCore`WebCore::RenderBlock::layout() + 81
frame #48: 0x08997837 WebCore`WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 711
frame #49: 0x08991b7b WebCore`WebCore::RenderBlock::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 587
frame #50: 0x089901f9 WebCore`WebCore::RenderBlock::layoutBlock(bool, WebCore::LayoutUnit) + 1641
frame #51: 0x0898f541 WebCore`WebCore::RenderBlock::layout() + 81
frame #52: 0x08997837 WebCore`WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 711
frame #53: 0x08991b7b WebCore`WebCore::RenderBlock::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 587
frame #54: 0x089901f9 WebCore`WebCore::RenderBlock::layoutBlock(bool, WebCore::LayoutUnit) + 1641
frame #55: 0x0898f541 WebCore`WebCore::RenderBlock::layout() + 81
frame #56: 0x08997837 WebCore`WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 711
frame #57: 0x08991b7b WebCore`WebCore::RenderBlock::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 587
frame #58: 0x089901f9 WebCore`WebCore::RenderBlock::layoutBlock(bool, WebCore::LayoutUnit) + 1641
frame #59: 0x0898f541 WebCore`WebCore::RenderBlock::layout() + 81
frame #60: 0x08af387e WebCore`WebCore::RenderView::layout() + 1374
frame #61: 0x08253531 WebCore`WebCore::FrameView::layout(bool) + 1713
frame #62: 0x080b0a64 WebCore`WebCore::Document::updateLayout() + 228
frame #63: 0x080b40fa WebCore`WebCore::Document::updateLayoutIgnorePendingStylesheets() + 298
frame #64: 0x0819a310 WebCore`WebCore::Element::offsetHeight() + 32
frame #65: 0x085a9534 WebCore`WebCore::jsElementOffsetHeight(JSC::ExecState*, JSC::JSValue, JSC::PropertyName) + 20
frame #66: 0x0a6ccb47 JavaScriptCore`JSC::JSValue::get(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&) const + 727
frame #67: 0x0a8eb309 JavaScriptCore`llint_slow_path_get_by_id + 233