首页 > 解决方案 > 如何破译模棱两可的 Unity C# 堆栈跟踪

问题描述

有时我在 Android 设备上遇到崩溃,当我查看日志以查看原因时,堆栈跟踪并没有太大帮助。通常我得到的是在我的代码中调用的最后一行只是函数/方法块的最后一行;例如带有右花括号的行。之前的堆栈跟踪行只是方法/功能块中第一行的行号。

在那之后,堆栈跟踪几乎是模糊的胡言乱语。有没有希望尝试破译这样的堆栈跟踪?

回溯:

#00  pc 0004b540  /system/lib/libc.so (tgkill+12)
#01  pc 00048c43  /system/lib/libc.so (pthread_kill+34)
#02  pc 0001e221  /system/lib/libc.so (raise+10)
#03  pc 002a2bc8  /data/app/com.company.game/lib/arm/libmono.so
#04  pc 002a2cc4  /data/app/com.company.game/lib/arm/libmono.so
#05  pc 002a2d20  /data/app/com.company.game/lib/arm/libmono.so
#06  pc 00116e3c  /data/app/com.company.game/lib/arm/libmono.so
#07  pc 001170d8  /data/app/com.company.game/lib/arm/libmono.so
#08  pc 0011774c  /data/app/com.company.game/lib/arm/libmono.so
#09  pc 001262f4  /data/app/com.company.game/lib/arm/libmono.so
#10  pc 000eb020  /data/app/com.company.game/lib/arm/libmono.so
#11  pc c7d80054  <unknown/absolute>
#12  il ........  at WorldObject.evaluate_position () [0x00031] in /Volumes/JenkinsRAID/Jenkins/workspace/Game(Debug)/Assets/Scripts/WorldObjects/WorldObject.cs:225
#13  il 00000028  at WorldObjec.evaluate_position () [0x0000d] in /Volumes/JenkinsRAID/Jenkins/workspace/Game(Debug)/Assets/Scripts/WorldObjects/WorldObject.cs:218
#14  il 00000073  at WidgetMapSocket.on_world_object_pathing_complete_listener (WorldObject) [0x0003b] in /Volumes/JenkinsRAID/Jenkins/workspace/Game(Debug)/Assets/Scripts/UI/Widgets/Map/WidgetMapSocket.cs:1031
#15  il 00000063  at (wrapper delegate-invoke) System.Action`1<WorldObject>.invoke_void__this___WorldObject (WorldObject) <IL 0x00042, 0x00063>
#16  il 0000008f  at (wrapper delegate-invoke) System.Action`1<WorldObject>.invoke_void__this___WorldObject (WorldObject) <IL 0x00056, 0x0008f>
#17  il 00000073  at WorldObject.on_pathing_complete (WorldObject) [0x00031] in /Volumes/JenkinsRAID/Jenkins/workspace/Game(Debug)/Assets/Scripts/WorldObjects/WorldObject.cs:605
#18  il 000000a3  at GameHelper.exec<object> (System.Collections.Generic.IList`1<System.Action`1<object>>,object) [0x00032] in /Volumes/JenkinsRAID/Jenkins/workspace/Game(Debug)/Assets/Scripts/Helper/GameHelper.cs:236
#19  il 00000413  at WorldObject/<pathing_coroutine>c__Iterator2.MoveNext () [0x0022a] in /Volumes/JenkinsRAID/Jenkins/workspace/Game(Debug)/Assets/Scripts/WorldObjects/WorldObject.cs:816
#20  il 00000067  at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator,intptr) [0x00028] in /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17
#21  il 0000007b  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object_intptr (object,intptr,intptr,intptr) <IL 0x00022, 0x0007b>
#00  pc 000222fb  /data/app/com.company.game/lib/arm/libmono.so
#01  pc 001f6054  /data/app/com.company.game/lib/arm/libmono.so (mono_runtime_invoke+136)
#02  pc 008c8858  /data/app/com.company.game/lib/arm/libunity.so (ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)+84)
#03  pc 008a817c  /data/app/com.company.game/lib/arm/libunity.so (Coroutine::InvokeMoveNext(ScriptingExceptionPtr*)+164)
#04  pc 008a7d4c  /data/app/com.company.game/lib/arm/libunity.so (Coroutine::Run(bool*)+44)
#05  pc 003e7490  /data/app/com.company.game/lib/arm/libunity.so (DelayedCallManager::Update(int)+864)
#06  pc 0063a4fc  /data/app/com.company.game/lib/arm/libunity.so (InitPlayerLoopCallbacks()::UpdateScriptRunDelayedDynamicFrameRateRegistrator::Forward()+40)
#07  pc 0063adf8  /data/app/com.company.game/lib/arm/libunity.so (PlayerLoop()+1716)
#08  pc 00a11904  /data/app/com.company.game/lib/arm/libunity.so (UnityPlayerLoop()+856)
#09  pc 00a13ecc  /data/app/com.company.game/lib/arm/libunity.so (nativeRender(_JNIEnv*, _jobject*)+228)

标签: c#unity3dexceptioncrashstack-trace

解决方案


推荐阅读