v8 引擎 - 创建数组会导致错误
v8 Engine - Creating an array causes an error
我在使用 v8 引擎创建数组时遇到问题。
这是我到目前为止得到的:
void function(Isolate* isolate) {
EscapableHandleScope scope(isolate);
Local<Array> array = Array::New(isolate, n);
...
}
但是我的程序每次到第二行就崩溃了。
这是我收到的输出:
==== C stack trace ===============================
v8::internal::Scope::set_start_position [0x000002A7A393E69E+10258841]
v8::internal::Scope::set_start_position [0x000002A7A37A1C63+8568670]
v8::internal::Scope::set_start_position [0x000002A7A37A1E02+8569085]
v8::internal::Scope::set_start_position [0x000002A7A3004CBC+585655]
我已经尝试在这个函数中创建一个整数或另一个对象。它在那里完美地工作。
知道这里出了什么问题吗?
I find out what went wrong. But I am not 100% sure why. After i put
the Array initialization in a Context_Scope, it worked. But why had it
worked for an Integer initialization (without the context scope)?
此处信息不足,无法判断发生了什么。根据您粘贴的代码段,我只能说 n
未定义,因此它甚至不应该编译,但显然这不是您正在谈论的问题。
请在调试模式下编译您的代码,然后在调试器中运行它,以便您可以获得正确的堆栈跟踪。也许它不仅会崩溃,还会 运行 变成一个断言 ("DCHECK"),这可能会阐明问题所在。 (一般来说,学习如何使用调试器几乎是使用 C++ 的必要条件。)
将您拥有的内容与官方示例代码进行比较也可能会有所帮助,例如https://chromium.googlesource.com/v8/v8/+/master/samples/hello-world.cc.
如果您仍然需要帮助:请post您的完整代码,包括您如何构建它以及您使用的是哪个 V8 版本。
在您编辑问题后进行编辑:
诸如缺少 ContextScope 之类的事情是我要求查看您的整个代码的原因 ;-)
小整数与上下文无关。 (这是您通常不关心的实现细节,因为对于所有有趣的事情,您无论如何都需要一个上下文。)
我在使用 v8 引擎创建数组时遇到问题。 这是我到目前为止得到的:
void function(Isolate* isolate) {
EscapableHandleScope scope(isolate);
Local<Array> array = Array::New(isolate, n);
...
}
但是我的程序每次到第二行就崩溃了。 这是我收到的输出:
==== C stack trace ===============================
v8::internal::Scope::set_start_position [0x000002A7A393E69E+10258841]
v8::internal::Scope::set_start_position [0x000002A7A37A1C63+8568670]
v8::internal::Scope::set_start_position [0x000002A7A37A1E02+8569085]
v8::internal::Scope::set_start_position [0x000002A7A3004CBC+585655]
我已经尝试在这个函数中创建一个整数或另一个对象。它在那里完美地工作。 知道这里出了什么问题吗?
I find out what went wrong. But I am not 100% sure why. After i put the Array initialization in a Context_Scope, it worked. But why had it worked for an Integer initialization (without the context scope)?
此处信息不足,无法判断发生了什么。根据您粘贴的代码段,我只能说 n
未定义,因此它甚至不应该编译,但显然这不是您正在谈论的问题。
请在调试模式下编译您的代码,然后在调试器中运行它,以便您可以获得正确的堆栈跟踪。也许它不仅会崩溃,还会 运行 变成一个断言 ("DCHECK"),这可能会阐明问题所在。 (一般来说,学习如何使用调试器几乎是使用 C++ 的必要条件。)
将您拥有的内容与官方示例代码进行比较也可能会有所帮助,例如https://chromium.googlesource.com/v8/v8/+/master/samples/hello-world.cc.
如果您仍然需要帮助:请post您的完整代码,包括您如何构建它以及您使用的是哪个 V8 版本。
在您编辑问题后进行编辑:
诸如缺少 ContextScope 之类的事情是我要求查看您的整个代码的原因 ;-)
小整数与上下文无关。 (这是您通常不关心的实现细节,因为对于所有有趣的事情,您无论如何都需要一个上下文。)