小编Axe*_*hra的帖子

如何检测故障并重置/重启 webassembly 模块?

我正在尝试使用 WebSssembly 在浏览器上运行一些 C++ 函数。我正在关注本教程。我想知道:

  1. 如何检测(在 JS 端)来自 C++ 代码的“未捕获异常”?
  2. 如何以emcc一种避免内存泄漏的方式重置/重新启动由生成的 WebAssembly 模块?

添加异常捕获功能 ( DISABLE_EXCEPTION_CATCHING=0) 似乎会过多地增加文件大小。

任何帮助将不胜感激。


示例 C++ 代码如下:

// C++ source code (fib.cc)

#include <stdexcept>
#include <emscripten.h>

extern "C" {

EMSCRIPTEN_KEEPALIVE
int fib(int n) {
  if (n > 12) {
    throw std::out_of_range("input out of range");
  }
  int i, t, a = 0, b = 1;
  for (i = 0; i < n; i++) {
    t = a + b;
    a = b; …
Run Code Online (Sandbox Code Playgroud)

javascript c++ webassembly

5
推荐指数
1
解决办法
773
查看次数

标签 统计

c++ ×1

javascript ×1

webassembly ×1