如何在没有错误的情况下调试在调试,构建和部署中运行的程序,但是UnityPlayer.dll中的错误?

时间:2018-05-10 15:05:09

标签: c# unity3d uwp hololens windows-mixed-reality

我正在Unity 2017中开发混合现实工具,该项目通过编辑器和编辑器本身的远程仿真在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,并且我在混合或本机上设置了调试器。在托管中,它只会抛出这两个错误,目前0x0000005似乎更频繁地发生。

感谢Josh Peterson的评论,这是一个希望更好的callstack:

  

UnityPlayer.dll!OutOfMemoryError()未知

     

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

     

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

     

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

     

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

     

UnityPlayer.dll!DecompressSubprogramBlob()未知

     

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

     

...

     

UnityPlayer.dll!Platform :: Details :: __ abi_FunctorCapture,void,struct Windows :: Foundation :: IAsyncAction ^> :: Invoke(struct Windows :: Foundation :: IAsyncAction ^)Unknown

     

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 ^)Unknown < / p>      

threadpoolwinrt.dll!734c4c6f()未知

     

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

     

[外部代码]

1 个答案:

答案 0 :(得分:0)

要检查的一些事项:

  • 在Visual Studio中,尝试使用Release配置而不是Debug进行构建。
  • 在Unity中,尝试在WSA的播放器设置中更改脚本后端。我的.NET后端比IL2CPP后端运气好。
  • 更新VS2017。我们遇到了特定版本的VS2017破坏版本的问题(虽然我不记得是哪一个)。