我想编写一个使用 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/