asm.js - 获取指针的值

asm.js - Get value of pointer

Asm.js 涉及大量数学运算,为简单起见,它使用整数作为指针。

我正在尝试调试一些代码,但看不到实际值,只能看到 asm.js 中的 'pointers'。

有什么方法可以直接取值吗?

它使用 int 的原因不是为了简单,而是为了安全:代码不应该在 ArrayBuffer 之外进行索引:你看到的堆有一个额外的间接寻址,这与 usespace 看不到的方式完全相同物理地址,而不是只看到虚拟地址(除了 asm.js 不会碎片化底层存储)。

你想做什么?

如果您尝试从调试器中获取值,则可能会发生一些事情(通过在构造时使用断点找出 ArrayBuffer 的基地址,添加索引)。

如果您想要编译为 asm.js 的 C++ 代码的值,那将不起作用,因为它会危及安全性。

如果您有权访问 Module 对象,比如在开发工具中,并且如果您有指针值并且知道它指向什么类型的变量,则可以使用 getValue。例如,要在内存位置 2434 检索一个 32 位整数,您可以调用:

Module.getValue(2434, 'i32');

您可以使用 i8i16i32i64floatdouble 作为数据类型内存位置。不知道还有没有其他的类型可以pass。