Asm.js处理大量的数学问题,为了简单起见,它使用了ints作为指针。
我正在调试一些代码,但是我看不到实际的值,只有asm.js中的“指针”。
有什么办法可以直接达到这个价值吗?
发布于 2015-08-01 11:59:11
如果您可以访问Module对象,比如在dev工具中,如果您有指针值,并且知道它指向的变量类型,则可以使用getValue。例如,要在内存位置2434检索32位整数,您可以调用:
Module.getValue(2434, 'i32');您可以使用i8、i16、i32、i64、float或double作为内存位置的数据类型。我不知道你还能不能通过其他类型的考试。
发布于 2015-07-29 15:33:11
它使用it的原因不是为了简单,而是为了安全性:代码不应该能够在ArrayBuffer之外索引:您看到的堆有一个额外的间接方向,就像使用空间不能看到物理地址,而只看到虚拟地址(除了asm.js不对底层存储进行分段)。
你想做什么?
如果您试图从调试器中获取值,那么可能有一些事情是可能的(通过在构造中使用断点来计算ArrayBuffer的基址,添加索引)。
如果您希望从编译到asm.js的C++代码中获得值,那么它将无法工作,因为它会危及安全性。
https://stackoverflow.com/questions/31672702
复制相似问题