如何调试在调试中运行、构建和部署时没有错误但随后在 UnityPlayer.dll

我正在 Unity 2017.4 中开发混合现实工具,该项目通过编辑器中的远程仿真和编辑器本身在 Hololens 上运行,该项目从 Visual Studio 2017 构建并部署到模拟器和设备。但是当程序运行时UnityPlayer.dll 抛出两个断点之一,0x0000003 或 0x0000005。这是我的调用堆栈:


UnityPlayer.dll!623d51fb() 未知


[下面的帧可能不正确和/或丢失,没有为 UnityPlayer.dll 加载符号]


UnityPlayer.dll!623d5703() 未知


UnityPlayer.dll!623d58d7() 未知


UnityPlayer.dll!61b1d66d() 未知


...


UnityPlayer.dll!630b22e2() 未知


UnityPlayer.dll!630b2444() 未知


UnityPlayer.dll!630bed92() 未知


【外码】


它还说在抛出这些错误时找不到 UnityPlayer_UAP_x86_debug_dotnet.pdb 并且我在混合或本机上设置了调试器。在管理中,它只是抛出这 2 个错误,目前 0x0000005 似乎发生得更频繁。


感谢 Josh Peterson 的评论,这里有一个希望更好的调用堆栈:


UnityPlayer.dll!OutOfMemoryError() 未知


UnityPlayer.dll!MemoryManager::Allocate(unsigned int,unsigned int,struct MemLabelId const &,enum AllocateOptions,char const *,int) 未知


UnityPlayer.dll!MemoryManager::Reallocate(void *,unsigned int,unsigned int,struct MemLabelId const &,enum AllocateOptions,char const *,int) 未知


UnityPlayer.dll!realloc_internal(void *,unsigned int,unsigned int,struct MemLabelId const &,enum AllocateOptions,char const *,int) 未知


UnityPlayer.dll!dynamic_array::reserve(unsigned int) 未知


UnityPlayer.dll!DecompressSubprogramBlob() 未知


UnityPlayer.dll!Shader::Transfer >(class StreamedBinaryRead<0> &) 未知


...


UnityPlayer.dll!Platform::Details::__abi_FunctorCapture,void,struct Windows::Foundation::IAsyncAction ^>::Invoke(struct Windows::Foundation::IAsyncAction ^) 未知


UnityPlayer.dll!Windows::System::Threading::WorkItemHandler::[Windows::System::Threading::WorkItemHandler::__abi_IDelegate]::__abi_Windows_System_Threading_WorkItemHandler___abi_IDelegate____abi_Invoke(struct Windows::Foundation::IAsyncAction ^) 未知


threadpoolwinrt.dll!734c4c6f() 未知


[下面的帧可能不正确和/或丢失,没有为 threadpoolwinrt.dll 加载符号]


【外码】


小唯快跑啊
浏览 293回答 2
2回答

白板的微信

要检查的一些事项:在 Visual Studio 中,尝试在发布配置而不是调试中构建。在 Unity 中,尝试在 WSA 的播放器设置中更改脚本后端。.NET 后端比 IL2CPP 后端好运。更新 VS2017。我们遇到了特定版本的 VS2017 破坏性构建的问题(尽管我不记得是哪个版本)。
打开App,查看更多内容
随时随地看视频慕课网APP