Python远程调试器不会在VS代码中调试我的代码

时间:2017-12-21 19:08:50

标签: python-3.x docker visual-studio-code remote-debugging

我正在Docker容器内的Python 3.6上运行一个烧瓶应用程序。我正在尝试从Mac上的VS Code调试烧瓶应用程序。

我已经连接了远程调试器,虽然我的断点都没有被击中,并且所有断点都在VS Code中显示为“未验证”断点。

当我运行远程调试器时,它在__init__.py的{​​{1}}的{​​{1}}的第587行中断,其中Resource.dispatchRequest()resp = meth(*args, **kwargs)。尝试前进,介入或退出不会产生任何结果。点击继续多次(大约20次)将继续执行我的测试脚本的下一个请求。

调试器永远不会在我的代码中的断点上停止,它会将断点显示为未验证的断点。当调试器卡在烧瓶请求代码中时,调用堆栈会以灰色显示我的代码中的方法,并在它们旁边显示“未知来源”。我无法在调用堆栈中插入它们,尽管我可以在“变量”窗口中看到局部变量。

如何让VS Code调试我的代码?

1 个答案:

答案 0 :(得分:5)

launch.json中,Attach部分具有以下默认值:

{
    "name": "Python: Attach",
    "remoteRoot": "${workspaceFolder}",
    ...
}

此默认值对Docker容器没有意义,除非您将代码复制到它在主机上的完全相同的路径下。

我的Dockerfile将我的代码复制到容器中,如下所示:

COPY . /app/

因此Attach的{​​{1}}部分必须是:

launch.json

现在我可以调试我的代码了。