使用debugpy的远程调试可以从代码中进行,但不能从命令行进行



我有一个python二进制文件(这是使用bazel构建的,但我不认为这是相关的),我可以这样运行:

$ bazel-bin/path/to/my_test
----------------------------------------------------------------------
Ran 5 tests in 0.228s
OK

我想用debugpy在Visual Studio Code中调试这个二进制文件。我可以找到我要调试的文件并添加

import debugpy
debugpy.listen(('0.0.0.0', 5678))
debugpy.wait_for_client()

构建并运行二进制文件,它开始等待客户端,然后我使用这个vscode配置

{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"host": "127.0.0.1",
"port": 5678,
}
]
}

一切正常。我可以设置断点,在代码中跳转,完美。

现在,如果不是在顶部添加代码,而是:

python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client bazel-bin/path/to/my_test

客户端似乎正在等待连接。然后我开始远程调试vscode和…什么也不会发生。调试器在一秒钟内启动和结束。我没有看到日志,没有错误。

我在哪里可以找到日志来查看客户端或vscode上发生了什么?

是否添加了断点?

debugpy.breakpoint()

import debugpy
# 5678 is the default attach port in the VS Code debug configurations. Unless a host and port are specified, host defaults to 127.0.0.1
debugpy.listen(5678)
print("Waiting for debugger attach")
debugpy.wait_for_client()
debugpy.breakpoint() #must have
print('break on this line')

裁判:https://code.visualstudio.com/docs/python/debugging

你可以在Python源文件中添加一个断点,然后在附加到debugpy服务器之前,它会命中并在附加后返回VSCode。

相关内容

  • 没有找到相关文章

最新更新