我们的iOS应用程序在Xcode 13.4.1上正常工作,现在在Xcode 14.0.1下启动时出现异常。
Thread 1: EXC_BAD_ACCESS (code=1, address=0x1176aca60)
但这只在调试时可见;如果我直接在设备上运行它,它看起来运行良好。仍然是一个问题,因为我们无法调试我们的应用程序。
可用的信息非常少,但这是调用堆栈,其中没有一个是我们的代码。我逐步通过了很多我们的启动代码,没有发现任何问题。
Thread 1 Queue : com.apple.main-thread (serial)
#0 0x0000000183aa3518 in objc_release ()
#1 0x0000000183aa15d8 in AutoreleasePoolPage::releaseUntil(objc_object**) ()
#2 0x0000000183aa4f40 in objc_autoreleasePoolPop ()
#3 0x00000001a0061aec in -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] ()
#4 0x00000001a009cd3c in __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke ()
#5 0x000000010900e04c in _dispatch_client_callout ()
#6 0x0000000109011ac8 in _dispatch_block_invoke_direct ()
#7 0x00000001a006bf2c in FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK ()
#8 0x00000001a006bac8 in -[FBSSerialQueue _targetQueue_performNextIfPossible] ()
#9 0x00000001a006e2a8 in -[FBSSerialQueue _performNextFromRunLoopSource] ()
#10 0x000000018a7be22c in CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION ()
#11 0x000000018a7ca614 in __CFRunLoopDoSource0 ()
#12 0x000000018a74e57c in __CFRunLoopDoSources0 ()
#13 0x000000018a763eb8 in __CFRunLoopRun ()
#14 0x000000018a7691e4 in CFRunLoopRunSpecific ()
#15 0x00000001c3589368 in GSEventRunModal ()
#16 0x000000018cc18d88 in -[UIApplication _run] ()
#17 0x000000018cc189ec in UIApplicationMain ()
#18 0x0000000101d76580 in main at /Users/aaronl/engine-johnsonville/src/platform/ios/main.mm:8
#19 0x00000001a8a8d948 in start ()
打开某些Xcode调试标志时显示以下信息:
2022-10-13 16:33:49.020927+1300 umajin_viewer[1297:357539] *** -[CaptureMTLCaptureScope release]: message sent to deallocated instance 0x280aafb40
这款应用是Objective-C和C++的结合,在Metal上有Vulkan图形渲染。
我正在寻找任何线索,如何找出是哪里出了问题!
1条答案
按热度按时间o2gm4chl1#
最后我们确认这是MoltenVK的问题,它是在iOS和Mac的Metal上实现的Vulkan。它发布了苹果希望自动发布的东西(MTLCaptureScope)?因为它不是我们的代码,我们无法看到它。升级到最新版本解决了这个问题。