Vik*_*ehr 10 c++ emscripten asm.js
运行从C++编译的asmjs\emscripten应用程序时,它突然开始记录:"run() called, but dependencies remain, so not running"到Web控制台,没有其他事情发生.我在主要的绝对开始时添加了一些cout,但即使它们没有达到.
该应用程序之前已成功执行,但突然间这种情况开始发生,我不知道是什么变化触发了这一点.
有谁知道如何调试这个?
更新
在尽可能多地删除源代码之后,只要我#include就会发生这种情况,即使由于我的主要只包含一个cout.
理想情况下,当它在版本控制中运行时,您将拥有整个环境,并构建每个版本,以查看其中断的位置.
您可能在版本控制中使用了代码,但可能不是Emscripten本身.如果您更新了Emscripten,则可能会导致行为上的差异.我会尝试回到你运行时使用的任何版本.请注意,有时各种缓存目录在Emscripten版本更改后仍然存在,并且可能需要手动清除(我忘记了哪个).
剩下的依赖关系可能意味着你在Emscripten加载了它需要的任何其他文件之前尝试做某事,比如说--preload-file或者请求的文件--memory-init-file.请注意,根据https://kripken.github.io/emscripten-site/docs/getting_started/FAQ.html#faq-when-safe-to-call-compiled-functions,您不应该尝试运行任何Emscripten函数,直到C++ main函数已运行.要检测到这一点,您可以从main(有其他方式)调用您自己的Javascript函数.
事实上这不会导致问题,这可能是一个看起来非常不相关的事情:Web浏览器中的更改或更新,更改并发下载的限制,或者运行的Web服务器的更改.您可以在浏览器中的"网络"选项卡中查看是否有任何内容因为不同或可疑而跳出来.
然而,由于主要甚至没有达到,那可能不是那样.我会尝试将几乎所有的代码都注释掉,然后制作它,这样你几乎只有一个hello-world程序.也许您在Module对象中没有正确的设置,或者内存初始化文件的请求可能失败(您可以在浏览器的"网络"选项卡中查看该选项).如果您的基本hello world程序仍无法正常工作,那么您可以使用其代码再次发布单独的问题.
我认为你没有提供足够的信息来真正确定。但是,例如,您的 js 可能突然超过了某个内存阈值,超出了浏览器想要分配给它的内存阈值。您可以尝试减少使用的内存量/流式传输一些资源而不是预加载它们/减少代码/使用 -Os 优化级别?
| 归档时间: |
|
| 查看次数: |
897 次 |
| 最近记录: |