我正在Docker容器内的Python 3.6上运行一个烧瓶应用程序。我正在尝试从Mac上的VS Code调试烧瓶应用程序。
我已经连接了远程调试器,虽然我的断点都没有被击中,并且所有断点都在VS Code中显示为“未验证”断点。
当我运行远程调试器时,它在__init__.py
的{{1}}的{{1}}的第587行中断,其中Resource.dispatchRequest()
为resp = meth(*args, **kwargs)
。尝试前进,介入或退出不会产生任何结果。点击继续多次(大约20次)将继续执行我的测试脚本的下一个请求。
调试器永远不会在我的代码中的断点上停止,它会将断点显示为未验证的断点。当调试器卡在烧瓶请求代码中时,调用堆栈会以灰色显示我的代码中的方法,并在它们旁边显示“未知来源”。我无法在调用堆栈中插入它们,尽管我可以在“变量”窗口中看到局部变量。
如何让VS Code调试我的代码?
答案 0 :(得分:5)
在launch.json
中,Attach
部分具有以下默认值:
{
"name": "Python: Attach",
"remoteRoot": "${workspaceFolder}",
...
}
此默认值对Docker容器没有意义,除非您将代码复制到它在主机上的完全相同的路径下。
我的Dockerfile将我的代码复制到容器中,如下所示:
COPY . /app/
因此Attach
的{{1}}部分必须是:
launch.json
现在我可以调试我的代码了。