javascript - 如何在 Google Chrome 扩展中获取 Node.js 进程的调试目标信息?

标签 javascript node.js google-chrome debugging google-chrome-extension

我想编写一个使用 chrome.debugger API 的 Chrome 扩展程序附加到以“--inspect”开头的node.js进程,以便设置断点并控制 Node 进程的执行。我咨询了documentation ,看来我会使用 API chrome.debugger.attach为了将调试客户端附加到 Node.js 进程。 attach API 接受要附加的调试目标的 targetId 作为参数。我的问题是,如何找到 Node.js 进程的 targetId,我可以将其传递给 attach

我尝试使用chrome.debugger.getTargets查找node.js调试目标API,但生成的 targetInfo 数组不包含 node.js 进程。 Node.js 进程确实出现在 chrome://inspect 中,我可以使用 chrome devtools 来检查该进程。我想知道 node.js 进程是否没有出现在 targetInfo 结果中,因为 node.js 进程是远程调试目标,而该数组中的所有其他结果都是本地调试目标。

如果您对此有任何见解,我将不胜感激。谢谢。

最佳答案

如果你看看谷歌是如何检索远程源的。例如。在 chrome://inspect 中使用检查器。

inspect.js 中有一个名为 populateRemoteTargets 的 JavaScript 函数

在我的机器上发送的数据参数是 ->

{
  "adbConnected": true,
  "adbModel": "Remote Target",
  "adbSerial": "localhost",
  "browsers": [
    {
      "adbBrowserChromeVersion": 0,
      "adbBrowserName": "Target",
      "adbBrowserUser": "",
      "adbBrowserVersion": "",
      "id": "localhost:9222",
      "pages": [],
      "source": "remote"
    },
    {
      "adbBrowserChromeVersion": 0,
      "adbBrowserName": "Target",
      "adbBrowserUser": "",
      "adbBrowserVersion": "",
      "id": "localhost:9229",
      "pages": [],
      "source": "remote"
    }
  ],
  "id": "device:localhost"
}

不确定谷歌是否存储了这个列表,但它显然是存储在配置对话框中的内容。可能有办法获取这些数据,但不确定。如果没有,您可以自己维护该列表。

关于javascript - 如何在 Google Chrome 扩展中获取 Node.js 进程的调试目标信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46086403/

相关文章:

javascript - 在不被禁止的情况下,可以向 Google Maps API 发出多少请求?

node.js - 如何在 super 账本结构的 View 页面上使用 Node js显示当前哈希、先前哈希

javascript - 如何从浏览器中检索旧的控制台日志?

html - 导航项填充 : Firefox vs. Chrome&IE11

javascript - 试图将对象数组减少为相似但汇总的对象数组

javascript - 在 prestashop 中使用 jquery 进行翻译

mysql - Node mysql 连接池释放

node.js - Sequelize 连接和日志记录问题

javascript - 页面关闭前提醒 : How to change the Chrome's default message?

javascript - 如何通过 Chrome 扩展程序保存网页的完整状态?