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

时间:2017-09-07 01:12:49

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

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

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

我很感激对此的任何见解。谢谢。

1 个答案:

答案 0 :(得分:2)

如果你看看谷歌如何检索远程源。例如。在chrome://inspect

中使用检查器

populateRemoteTargets

中有一个名为inspect.js的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"
}

不确定谷歌是否存储此列表,但显然存储在配置对话框中的是什么。可能有办法获得这些数据,不确定。如果没有,您可以自己维护列表。