良好的一天,每个人都“更新”,的XNA Game堆栈溢出错误之后调用
我已经建立一个跨平台的框架/抽象层对定位到Android,iOS和Windows Phone利用单7和XNA框架适当的平台。我没有使用ExEn,MonoGame或类似的框架,尽管我从研究他们的方法中学到了很多东西。
框架的XNA部分扩展的XNA Game类的,我敢肯定这是哪里出现问题。然而,我有一些困难,并且对XNA Game类更了解的人可能会有很大的帮助。我不会为整个继承层次结构的类岗位代码,因为它会占用一定的空间,而是我会要求有关在的XNA Game类的问题的可能来源的信息,这可能会导致我发现我的错误。
运行测试游戏时我收到一个堆栈溢出异常。完全的例外是:
An unhandled exception of type 'System.StackOverflowException' occurred in Microsoft.Xna.Framework.Game.dll
为了追踪罪魁祸首,我一直在输出一些简单的调试语句到控制台。我得到的输出是:
Started init.
Started linear load.
Loading a texture...
Finished loading a texture...
Finished linear load.
Finished init.
Begin run called.
Begin run ended successfully.
Started update.
Ended update.
Process is terminated due to StackOverflowException.
正如你所看到的,它成功完成更新,但没有继续要么BeginDraw或EndRun。我一直无法确定此时可能发生哪些进程,以导致堆栈溢出异常。
如果有人可能是在确定可以在这一点上存在的过程中提供援助,这无疑会在发现问题的来源十分有帮助。如果你会更舒服检查代码,我当然可以提供它,我毫不犹豫地这样做,因为我相信我能确定更多信息的问题,并了解这一问题所需的代码库可能被证明相当大。
感谢您的时间和帮助,请让我知道是否可以提供更多有用的信息。
您可以检查异常的堆栈跟踪(或者将其粘贴在你的问题)? – 2012-08-08 01:30:45
虽然非常可耻,但我忘记了我可以禁用“我的代码”功能并检查问题的根源。奇怪的是,它似乎在调用OnActivated ad-infinitum。 – 2012-08-08 01:34:09