Почему возникает ошибка сегментации (движок v8)?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Почему возникает ошибка сегментации (движок v8)?

Сообщение Гость »


В движке v8 C++ я пытаюсь создать очень крошечную среду выполнения, которая имитирует часть nodeJS только в образовательных целях и чтобы узнать, как все работает на самом деле. теперь у меня проблема при этом в данном коде функция getStatAsync отвечает за получение статистики файла асинхронным способом, поэтому я получаю параметры, передаваемые в С++ из JS, один из этих параметров - statsTemp, это пустой объект JS, и я должен заполнить этот объект свойствами из С++ затем я создаю новый поток, который запускает statsAsync с заданием параметров и этим объектом "obj" и отсоедините поток сейчас, и функция statsAsync должна заполнить объект свойствами и значениями, а затем поместить задание в очередь (теперь это не проблема) теперь, когда я пытаюсь реализовать определенную строку кода, я получил ошибку сегментации, я сделал все, что мог но ничего, у меня все еще ошибка сегментации

void File::getStatsAsync(const v8::FunctionCallbackInfo &args) { автоматическая изоляция = args.GetIsolate(); автоматический контекст = изолировать->GetCurrentContext(); v8::Local v8Path = args[0].As(); v8::Local statsTemp = args[1].As(); v8::Local обратный вызов = args[2].As(); const char *path = StaticHelpers::ToUtf8String(изолировать, v8Path); callbackJob *job = новый callbackJob(); job->func = new v8::Persistent(); job->context = new v8::Persistent(); задание-> func-> Reset (изолировать, обратный вызов); job->args = новый std::vector(1); задание->контекст->Сброс(изолировать, контекст); job->additionalData = новый std::vector(1); (*job->additionalData)[0].Reset(isolate, statsTemp); Файл::helper->getTheJobDone(задание); std::shared_ptr obj = std::make_shared(statsTemp); Файл::loop->registerJob(); std::thread thread (statsAsync, path, job, obj); поток.отсоединить(); } void statsAsync(const char *path, callbackJob *job, std::shared_ptr obj) { автоматическая изоляция = Файл::loop->изолировать; автоматический контекст = задание->контекст->Get(изолировать); буфер статистики структуры; int ret = stat(путь, &буфер); если (рет != 0) { // ДЕЛАТЬ } еще { //эта строка вызывает проблему при запуске (*obj)->Set(context, StaticHelpers::ToLocalString(изолировать, "режим"), StaticHelpers::ToLocalString(изолировать,"что-нибудь")); } // File::loop->addCallbackJob(job); } когда я добавлял эту строку, у меня возникла ошибка сегментации может кто-нибудь помочь, пожалуйста?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка сегментации в C++ при доступе к члену класса [закрыто]
    Гость » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации.
    Гость » » в форуме Javascript
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации.
    Гость » » в форуме C++
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации.
    Гость » » в форуме Html
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Невозможно загрузить файл с помощью Crow C++ из-за ошибки сегментации.
    Гость » » в форуме C++
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»