【发布时间】:2014-11-13 08:55:13
【问题描述】:
Xcode 版本为 6.1 Unity 版本为 4.54f1 和 NGUI 2.6.1
我确信在 UnityEngine 中运行时控制台上没有错误记录,但在 iPhone 上运行时,它大约每小时崩溃一次。 我尝试使用 dSYM 来追踪错误,但我看到的只是内存地址,我不明白。
-
Unity 或 Xcode 中是否有任何选项可以帮助我避免此类崩溃?
这是我的设置:
脚本调用优化为
"Slow and Safe"
优化级别为"None[-O0]" 什么样的错误会导致这样的崩溃,内存错误?
-
在我的代码中跟踪错误行的方法。
线程 0 崩溃:
0 libsystem_kernel.dylib 0x37f551fc __pthread_kill + 8 1 libsystem_pthread.dylib 0x37fbea2e pthread_kill + 54 2 libsystem_c.dylib 0x37f05ff8 abort + 72 3 pp 0x01e2489c mono_handle_native_sigsegv + 312 4 pp 0x01e1420c mono_sigsegv_signal_handler + 256 5 libsystem_platform.dylib 0x37fb9060 _sigtramp + 40 6 pp 0x01f10e34 g_logv + 160 7 pp 0x01f10e5c g_log + 28 8 pp 0x01e18d64 get_numerous_trampoline + 368 9 pp 0x01e1c874 mono_aot_create_specific_trampoline + 468 10 pp 0x01e26aa4 mono_create_specific_trampoline + 72 11 pp 0x01e26f5c mono_create_jit_trampoline_in_domain + 328 12 pp 0x01e27088 mono_create_jit_trampoline + 20 13 pp 0x01e14604 mono_resolve_patch_target + 504 14 pp 0x01e1ddf0 mono_aot_plt_resolve + 452 15 pp 0x01e26040 mono_aot_plt_trampoline + 32 16 pp 0x016cbae8 generic_trampoline_6 + 120 17 pp 0x0162295c m_wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr (mscorlib.dll.s:354297) 18 pp 0x01e13ab0 mono_jit_runtime_invoke + 2152 19 pp 0x01eb5d60 mono_runtime_invoke + 132 20 pp 0x01a01148 MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethod*, MonoObject*, MonoException**) (MonoBehaviour.cpp:933) 21 pp 0x01a01284 MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethod*, MonoObject*) (MonoBehaviour.cpp:973) 22 pp 0x01a10a34 Scripting::SendScriptingMessage(Unity::GameObject&, char const*, MonoObject*) (Scripting.cpp:147) 23 pp 0x01a10b18 Scripting::SendScriptingMessage(Unity::GameObject&, std::string const&, MonoObject*, int) (Scripting.cpp:186) 24 pp 0x01c26c6c GameObject_CUSTOM_SendMessage(ReadOnlyScriptingObjectOfType<Unity::GameObject>, ICallString, MonoObject*, int) (UnityEngineGameObject.cpp:343) 25 pp 0x01168a54 m_wrapper_managed_to_native_UnityEngine_GameObject_SendMessage_string_object_UnityEngine_SendMessageOptions (UnityEngine.dll.s:51208) 26 pp 0x002503f4 m_UIEventListener_OnClick (Assembly-CSharp.dll.s:20588) 27 pp 0x0162295c m_wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr (mscorlib.dll.s:354297) 28 pp 0x01e13ab0 mono_jit_runtime_invoke + 2152 29 pp 0x01eb5d60 mono_runtime_invoke + 132 30 pp 0x01a01148 MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethod*, MonoObject*, MonoException**) (MonoBehaviour.cpp:933) 31 pp 0x01a01284 MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethod*, MonoObject*) (MonoBehaviour.cpp:973) 32 pp 0x01a10a34 Scripting::SendScriptingMessage(Unity::GameObject&, char const*, MonoObject*) (Scripting.cpp:147) 33 pp 0x01a10b18 Scripting::SendScriptingMessage(Unity::GameObject&, std::string const&, MonoObject*, int) (Scripting.cpp:186) 34 pp 0x01c26c6c GameObject_CUSTOM_SendMessage(ReadOnlyScriptingObjectOfType<Unity::GameObject>, ICallString, MonoObject*, int) (UnityEngineGameObject.cpp:343) 35 pp 0x01168a54 m_wrapper_managed_to_native_UnityEngine_GameObject_SendMessage_string_object_UnityEngine_SendMessageOptions (UnityEngine.dll.s:51208) 36 pp 0x0025e990 m_UICamera_ProcessTouch_bool_bool (Assembly-CSharp.dll.s:26704) 37 pp 0x0025d75c m_UICamera_ProcessTouches (Assembly-CSharp.dll.s:26229) 38 pp 0x0025c594 m_UICamera_Update (Assembly-CSharp.dll.s:25808) 39 pp 0x0162295c m_wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr (mscorlib.dll.s:354297) 40 pp 0x01e13ab0 mono_jit_runtime_invoke + 2152 41 pp 0x01eb5d60 mono_runtime_invoke + 132 42 pp 0x01961f8c scripting_method_invoke(ScriptingMethod*, MonoObject*, ScriptingArguments&, MonoException**) (ScriptingBackendApi_Mono.cpp:199) 43 pp 0x01a0cb30 ScriptingInvocationNoArgs::Invoke(MonoException**) (ScriptingInvocationNoArgs.cpp:95) 44 pp 0x01a0caec ScriptingInvocationNoArgs::Invoke() (ScriptingInvocationNoArgs.cpp:79) 45 pp 0x01a003a8 MonoBehaviour::CallUpdateMethod(int) (MonoBehaviour.cpp:612) 46 pp 0x01a003c0 MonoBehaviour::Update() (MonoBehaviour.cpp:617) 47 pp 0x0194b884 void BaseBehaviourManager::CommonUpdate<BehaviourManager>() (Behaviour.cpp:156) 48 pp 0x0194bc50 BehaviourManager::Update() (Behaviour.cpp:172) 49 pp 0x019d2be4 PlayerLoop(bool, bool, IHookEvent*) (Player.cpp:1895) 50 pp 0x017cda74 UnityPlayerLoop (LibEntryPoint.mm:239) 51 pp 0x017925bc -[UnityAppController(Rendering) repaint] (UnityAppController+Rendering.mm:55) 52 pp 0x017923b0 -[UnityAppController(Rendering) repaintDisplayLink] (UnityAppController+Rendering.mm:34) 53 QuartzCore 0x2facb9ca CA::Display::DisplayLinkItem::dispatch() + 94 54 QuartzCore 0x2facb774 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 340 55 IOMobileFramebuffer 0x326c176a IOMobileFramebufferVsyncNotifyFunc + 102 56 IOKit 0x2e363a72 IODispatchCalloutFromCFMessage + 246 57 CoreFoundation 0x2d641e1e __CFMachPortPerform + 134 58 CoreFoundation 0x2d64c9dc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32 59 CoreFoundation 0x2d64c976 __CFRunLoopDoSource1 + 342 60 CoreFoundation 0x2d64b14a __CFRunLoopRun + 1394 61 CoreFoundation 0x2d5b5c22 CFRunLoopRunSpecific + 518 62 CoreFoundation 0x2d5b5a06 CFRunLoopRunInMode + 102 63 GraphicsServices 0x322a527e GSEventRunModal + 134 64 UIKit 0x2fe59044 UIApplicationMain + 1132 65 pp 0x000cde78 main (main.mm:28) 66 pp 0x000cdd54 start + 36
【问题讨论】:
-
堆栈跟踪或崩溃日志在哪里?
-
@trojanfoe 嗨,我在下面发布了崩溃日志。
-
好的,现在您必须对崩溃日志进行符号化,这样您就可以看到崩溃的来源。然后用符号化版本更新问题。
-
是的,阅读象征性崩溃日志。因为这个日志没有给出任何提示。
-
这是我的符号化崩溃日志。有什么建议?谢谢!
标签: ios xcode memory unity3d crash