【问题标题】:v8 remote debugging c++v8 远程调试 c++
【发布时间】:2018-04-25 08:34:01
【问题描述】:

我使用旧 v8 版本的套接字连接进行远程调试。远程调试不适用于最新的 v8 版本。因为有些方法已被弃用或从 v8 中删除。 v8-debug.h 文件对调试无用。

// 在 JavaScript 代码运行时安排调试器中断 // 在给定的隔离中。 V8_DEPRECATED("不再支持", static void DebugBreak(Isolate* isolate));

// 如果没有给定隔离,则删除预定的调试器中断
// 还没有发生。 V8_DEPRECATED("不再支持", static void CancelDebugBreak(Isolate* isolate));

// 检查是否在给定的隔离中安排了调试器中断。
V8_DEPRECATED("不再支持", static bool CheckDebugBreak(Isolate* isolate));

// 现在这是一个空操作。 V8_DEPRECATED("不再支持", 静态无效SetMessageHandler(隔离*隔离, MessageHandler 处理程序));

// 现在这是一个空操作。 V8_DEPRECATED("不再支持", 静态无效发送命令(隔离*隔离, const uint16_t* 命令,int 长度, ClientData* client_data = NULL));

我找不到解决此问题的指南。是否有任何带有 v8-inspector 的最小 C++ 调试示例?

【问题讨论】:

  • 你看过github.com/v8/v8/wiki/Debugging-over-the-V8-Inspector-API的官方文档吗?有帮助吗?
  • @jmrk 我看过了。但这对我来说很复杂。我们使用 Debug::SendCommand 将命令发送到具有先前 v8 版本的 v8。但是现在,我要创建一个 InspectorClient 吗?

标签: c++ node.js v8 embedded-v8


【解决方案1】:

你可能想查看我写的关于这个主题的这篇文章:https://medium.com/@hyperandroid/v8-inspector-from-an-embedder-standpoint-7f9c0472e2b7

旧的调试器代理已被弃用并从主代码库中删除,以支持检查器 API,因此您基本上需要从头开始重写所有内容。

集成的棘手部分是:

  • websockets 作为 chrome 开发工具和您正在运行的代码库之间的传输(在我的例子中,是一个带有嵌入式 v8 的 Android 应用)。
  • 适当地处理 InspectorClient 中提供的自定义 runMessageLoopInPausequitMessageLoopInPause 方法。

【讨论】:

    猜你喜欢
    • 2017-07-14
    • 2011-07-27
    • 2017-09-08
    • 2014-05-12
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多