【问题标题】:Unity/WebGL and asm.js related crash in MS EdgeMS Edge 中的 Unity/WebGL 和 asm.js 相关崩溃
【发布时间】:2016-01-12 23:54:39
【问题描述】:

我有一个非常基本的 Unity 应用程序,它本质上是一个专有框架的测试工具。它在 Chrome、Firefox 和 Safari 中运行良好。 Edge 是另一回事。

在禁用 asm.js 的 Edge 12 中,加载需要非常很长时间 - 大约 90 秒,而在其他浏览器中则需要 15-20 秒。

在启用 asm.js 的 Edge 12 或 13 中,它可以快速加载,但在 Unity 应用启动时会立即使选项卡崩溃。我已经能够弄清楚“preRun”回调被调用了,但“postRun”回调没有。

我不知道如何开始调试 - 如果开发工具调试器打开,Edge 会禁用 asm.js,分离调试器也会禁用 JS 控制台。我无法附加 Unity 调试器,因为崩溃似乎发生在我到达那一点之前。

是否有来自 Edge 的某种日志,我可以在其中找到有关崩溃的任何信息,甚至可能是 JS 堆栈跟踪?

【问题讨论】:

  • 异常代码0xc0000005 是访问冲突。这可能是取消引用空指针的尝试。这似乎是 Edge 中的错误,而不是您可以修复或(直接)由您造成的错误。我想如果你能弄清楚 JS 在做什么,那么也许你可以解决它,但它可能是 Unity 中的东西。
  • 你能分享任何代码吗?我很乐意将此传递给负责 Edge 中的 asm 工作的一些工程师。此外,您的 Edge 版本相当旧。尝试运行 Windows 更新以查看 Edge 13 上是否仍然发生这种情况(您在 11 上)
  • @Patrick - 我主要在 Mac 上工作,我目前受modern.ie 上的任何东西的支配,现在是一个已过期的 Win10 企业评估,我还没有能够获得 11 月的更新。我有几个同事和 13 人正在经历同样的事情。如果您不介意,请通过 dschaffer@gsngames.com 与我联系,我们可以确定将哪些代码发送给这些工程师。

标签: unity3d microsoft-edge asm.js unity-webgl


【解决方案1】:

这是由于我们 asm.js 专业化代码(我是该代码的所有者)中 Edge 中的一个错误造成的。感谢您报告此问题,我会尽快修复此问题!如果其他人在 asm.js 中遇到崩溃,请随时给我发送消息,我将很乐意与您一起修复(同时找到解决方法)。

【讨论】:

    【解决方案2】:

    我想专门回答您的问题 - “是否有某种来自 Edge 的日志,我可以在其中找到有关崩溃的任何信息,甚至可能是 JS 堆栈跟踪?”

    我真的建议你使用stacktrace.js - 这是他们的Github repo

    只要您编写 Javascript 代码,跨浏览器进行调试,查找任何错误或异常,这是迄今为止最好的方法。非常一致,支持大部分浏览器甚至Edge。

    需要注意的一点是-您需要了解一点Javascript Promises,它是 ES6 的一部分(同样,最新的浏览器已经支持)。

    看看他们的documentation 并使用最适合您的。他们说它是您可以使用的 5 合 1 包。

    您可以使用简单的代码来处理错误-

    window.onerror = function(msg, file, line, col, error) {
        // callback is called with an Array[StackFrame]
        StackTrace.fromError(error).then(callback).catch(errback);
    };
    

    并从错误中获取 Stacktrace-

    var error = new Error('BOOM!');
    
    StackTrace.fromError(error).then(callback).catch(errback)
    => Promise(Array[StackFrame], Error);
    

    希望对您有所帮助。快乐编码! :)

    【讨论】:

    • 不幸的是,这不起作用——当我说“崩溃”时,我并不是说存在阻止代码工作的未处理的 JS 异常。我的意思是运行选项卡的 Windows 进程实际上崩溃了,导致 Windows 事件日志中出现崩溃报告。我已经有一个处理程序通过“警报”调用连接到 onerror,但它似乎在它到达那个点之前就崩溃了。也就是说,stacktrace.js 似乎很有帮助,我绝对可以使用一些更可靠的 JS 错误报告,所以感谢链接!
    猜你喜欢
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2018-05-01
    相关资源
    最近更新 更多