Я получаю A: Отказ от времени выполнения #2 - стек вокруг переменной 'harder_scope' был поврежден. < /p>
Когда я запускаю этот код: < /p>
#include
#define V8_COMPRESS_POINTERS 1
#include
#include
namespace consoleUtils {
static void log(const v8::FunctionCallbackInfo& args) {
v8::Isolate* isolate = args.GetIsolate();
if (args.Length() > 0) {
v8::String::Utf8Value utf8(isolate, args[0]);
std::cout Set(context, v8::String::NewFromUtf8(isolate, "log").ToLocalChecked(), logFuncTemplate->GetFunction(context).ToLocalChecked()).Check();
}
~Console() {
logTemplate.Reset();
}
};
class Engine {
private:
v8::Isolate::CreateParams create_params;
v8::Persistent context;
std::unique_ptr platform;
public:
v8::Isolate* isolate = nullptr;
Console* console = nullptr;
Engine() {
// Initialize V8.
v8::V8::InitializeICUDefaultLocation("./v8-data");
v8::V8::InitializeExternalStartupData("./v8-data");
platform = v8::platform::NewDefaultPlatform();
v8::V8::InitializePlatform(platform.get());
v8::V8::Initialize();
// Create a new Isolate and make it the current one.
create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator();
isolate = v8::Isolate::New(create_params);
// Create a new context.
v8::Isolate::Scope isolate_scope(isolate);
v8::HandleScope handle_scope(isolate);
v8::Local local_context = v8::Context::New(isolate);
context.Reset(isolate, local_context);
// Initialize console with the current context.
console = new Console(isolate, local_context);
}
~Engine() {
delete console;
context.Reset();
isolate->Dispose();
v8::V8::Dispose();
delete create_params.array_buffer_allocator;
}
void runExample() {
v8::Isolate::Scope isolate_scope(isolate);
v8::HandleScope handle_scope(isolate);
v8::Local local_context = context.Get(isolate);
v8::Context::Scope context_scope(local_context);
v8::Local source = v8::String::NewFromUtf8Literal(isolate, "log('Hello, World!')");
v8::Local script = v8::Script::Compile(local_context, source).ToLocalChecked();
v8::Local result = script->Run(local_context).ToLocalChecked();
v8::String::Utf8Value utf8(isolate, result);
std::cout
my v8 -настройки сборки (args.gn): < /p>
is_debug = true
target_cpu = "x64"
v8_enable_backtrace = true
v8_enable_slow_dchecks = true
v8_optimized_debug = false
is_component_build = false
v8_static_library = true
v8_monolithic = true
v8_use_external_startup_data = false
use_custom_libcxx = false
is_clang = false
# Disable WebAssembly
v8_enable_webassembly = false
v8_enable_wasm_simd256 = false
v8_enable_pointer_compression = true
v8_enable_sandbox = false
enable_iterator_debugging = true
< /code>
IDE, который я использую, - это Microsoft Visual Studio, я составляю код с помощью MSVC. Стандарт C ++ 20. < /p>
Я пытался отладить себя, но, к сожалению, мне не хватает опыта для этого. Излишне говорить, что это не привело к большому количеству, кроме моего собственного разочарования.>
Подробнее здесь: https://stackoverflow.com/questions/789 ... cope-in-v8
Коррупция стекает вокруг ручногоскопа в V8 ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1755134352
Anonymous
Я получаю A: Отказ от времени выполнения #2 - стек вокруг переменной 'harder_scope' был поврежден. < /p>
Когда я запускаю этот код: < /p>
#include
#define V8_COMPRESS_POINTERS 1
#include
#include
namespace consoleUtils {
static void log(const v8::FunctionCallbackInfo& args) {
v8::Isolate* isolate = args.GetIsolate();
if (args.Length() > 0) {
v8::String::Utf8Value utf8(isolate, args[0]);
std::cout Set(context, v8::String::NewFromUtf8(isolate, "log").ToLocalChecked(), logFuncTemplate->GetFunction(context).ToLocalChecked()).Check();
}
~Console() {
logTemplate.Reset();
}
};
class Engine {
private:
v8::Isolate::CreateParams create_params;
v8::Persistent context;
std::unique_ptr platform;
public:
v8::Isolate* isolate = nullptr;
Console* console = nullptr;
Engine() {
// Initialize V8.
v8::V8::InitializeICUDefaultLocation("./v8-data");
v8::V8::InitializeExternalStartupData("./v8-data");
platform = v8::platform::NewDefaultPlatform();
v8::V8::InitializePlatform(platform.get());
v8::V8::Initialize();
// Create a new Isolate and make it the current one.
create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator();
isolate = v8::Isolate::New(create_params);
// Create a new context.
v8::Isolate::Scope isolate_scope(isolate);
v8::HandleScope handle_scope(isolate);
v8::Local local_context = v8::Context::New(isolate);
context.Reset(isolate, local_context);
// Initialize console with the current context.
console = new Console(isolate, local_context);
}
~Engine() {
delete console;
context.Reset();
isolate->Dispose();
v8::V8::Dispose();
delete create_params.array_buffer_allocator;
}
void runExample() {
v8::Isolate::Scope isolate_scope(isolate);
v8::HandleScope handle_scope(isolate);
v8::Local local_context = context.Get(isolate);
v8::Context::Scope context_scope(local_context);
v8::Local source = v8::String::NewFromUtf8Literal(isolate, "log('Hello, World!')");
v8::Local script = v8::Script::Compile(local_context, source).ToLocalChecked();
v8::Local result = script->Run(local_context).ToLocalChecked();
v8::String::Utf8Value utf8(isolate, result);
std::cout
my v8 -настройки сборки (args.gn): < /p>
is_debug = true
target_cpu = "x64"
v8_enable_backtrace = true
v8_enable_slow_dchecks = true
v8_optimized_debug = false
is_component_build = false
v8_static_library = true
v8_monolithic = true
v8_use_external_startup_data = false
use_custom_libcxx = false
is_clang = false
# Disable WebAssembly
v8_enable_webassembly = false
v8_enable_wasm_simd256 = false
v8_enable_pointer_compression = true
v8_enable_sandbox = false
enable_iterator_debugging = true
< /code>
IDE, который я использую, - это Microsoft Visual Studio, я составляю код с помощью MSVC. Стандарт C ++ 20. < /p>
Я пытался отладить себя, но, к сожалению, мне не хватает опыта для этого. Излишне говорить, что это не привело к большому количеству, кроме моего собственного разочарования.>
Подробнее здесь: [url]https://stackoverflow.com/questions/78945602/stack-corruption-around-a-handlescope-in-v8[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия