V8 удаленная отладка C++

Я использую удаленную отладку по сокетному соединению со старой версией v8. Удаленная отладка не работает с последней версией v8. Поскольку некоторые методы устарели или удалены из v8. Файл v8-debug.h бесполезен для отладки.

// Schedule a debugger break to happen when JavaScript code is run // in the given isolate. V8_DEPRECATED("No longer supported", static void DebugBreak(Isolate* isolate));

// Remove scheduled debugger break in given isolate if it has not
// happened yet. V8_DEPRECATED("No longer supported", static void CancelDebugBreak(Isolate* isolate));

// Check if a debugger break is scheduled in the given isolate.
V8_DEPRECATED("No longer supported", static bool CheckDebugBreak(Isolate* isolate));

// This is now a no-op. V8_DEPRECATED("No longer supported", static void SetMessageHandler(Isolate* isolate, MessageHandler handler));

// This is now a no-op. V8_DEPRECATED("No longer supported", static void SendCommand(Isolate* isolate, const uint16_t* command, int length, ClientData* client_data = NULL));

Я не могу найти руководство по устранению этой проблемы. Есть ли какой-нибудь минимальный пример отладки C++ с v8-Inspector?

Вы видели официальную документацию на github.com/v8/v8/wiki/Debugging-over-the-V8-Inspector-API? Помогает?

jmrk 25.04.2018 19:09

@jmrk Я это видел. Но для меня это сложно. Мы используем Debug :: SendCommand для отправки команды v8 с предыдущими версиями v8. Но теперь я могу создать InspectorClient?

us2956 04.05.2018 09:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
429
1

Ответы 1

Вы можете проверить эту статью, которую я написал на эту тему: https://medium.com/@hyperandroid/v8-inspector-from-an-embedder-standpoint-7f9c0472e2b7

Старый агент отладчика устарел и некоторое время назад был удален из основной кодовой базы в пользу API инспектора, поэтому вам в основном нужно переписывать все с нуля.

Сложные части интеграции:

  • веб-сокеты как транспорт между инструментами chrome dev и вашей запущенной базой кода (в моем случае это приложение для Android со встроенной версией v8).
  • надлежащим образом обрабатывая их, настраиваемые методы runMessageLoopInPause и quitMessageLoopInPause, предоставленные в InspectorClient.

Другие вопросы по теме