我最近选择了VS Code,因为我有一个用NodeJS编写的新组件,我需要对其进行调试,并且了解到VS Code内置了调试支持。我可以在PyCharm for Python中进行调试,但是PyCharm的社区版没有JS支持,因此我想将环境迁移到VSC。
我正在使用的应用程序主要在Python上运行,并且我们添加了一个新组件,该组件在NodeJS的单独端口上运行。我已经设置好配置以启动主应用程序,该应用程序启动了Python和NodeJS服务器。
现在,当我在NodeJS和Python代码中设置断点时,我想将其设置为在断点处暂停。我以为可以使用"request": "attach"
进行配置,但是当我将端口与应用程序的端口匹配时,我只会得到一个错误(Failed to attach (connect ECONNREFUSED 127.0.0.1:8888)
)。我知道这可能是因为端口目前尚未运行我的应用程序,但是当我自己单独运行附加配置时,我会收到有关进程如何意外终止的通知。
所以我在这里,我不知道我需要做些什么来使我的断点停止,以便我可以逐步完成Python和NodeJS代码。
这是我的launch.json
文件。 Python进程在端口8888上运行,而NodeJS进程在端口8895上运行。
{
"version": "0.2.0",
"configurations": [
{
"name": "CloudDrafts",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/obrien.server/project/apps/obrien/runner.py",
"args": ["-d", "${workspaceFolder}/obrien.server/_data"],
"console": "externalTerminal",
"pythonPath": "${workspaceFolder}/venv/bin/python2.7",
"cwd": "${workspaceFolder}/obrien.server/project/apps/obrien",
"env": {
"PYTHONPATH": "${workspaceFolder}/obrien.server/project"
}
},
{
"name": "Attach (Python)",
"type": "python",
"request": "attach",
"port": 8888,
"host": "localhost"
},
{
"name": "Attach (Node.js)",
"type": "node",
"request": "attach",
"port": 8895,
"address": "localhost"
}
],
"compounds": [
{
"name": "Debug CloudDrafts",
"configurations": ["CloudDrafts", "Attach (Python)", "Attach (Node.js)"]
}
]
}
为澄清起见,我已经安装了Python扩展,并且已经浏览了尽可能多的Microsoft文档,但是现在我并没有真正理解它,也没有运气找到所需的东西。
必须设置什么才能设置VS Code,以允许在单独的端口中运行Python和NodeJS进程的应用程序进行断点调试?
答案 0 :(得分:0)
Python扩展程序的调试器仅用于调试两端的Python代码,因此在attach
场景中看到的错误是因为它试图在ptvsd
调试器中查找另一个实例另一端,只能找到Node。如果您更改为按模块或文件进行调试,则Python调试将再次起作用。
然后附加到活动的Node进程以调试另一端,我不确定该怎么做。