vscode命令行debug

一般命令行debug会在远程连服务器的时候用上,命令行debug的本质是在执行时暴露一个监听端口,通过进入这个端口,像本地调试一样进行。

这里提供两种方式:

  • 直接在命令行中添加debugpy,适用于python启动
  • 在python代码中添加debugpy.listen,适用于一些非python启动的情况(如deepspeed一些前缀不是python的启动方式)

1、命令行添加

原始启动代码

python train.py --your-args

添加后的启动代码

python -m debugpy --listen 1234 --wait-for-client train.py --your-args

然后创建launch.json文件

在这里插入图片描述

内容如下

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Python: Attach",
            "type": "debugpy",
            "request": "attach",
            "connect": {
                "host": "localhost",
                "port": 1234			//你之前执行时暴露的端口号
            },
            "justMyCode": false  //添加后可以调试进入源码,推荐添加
        }
    ]
}

然后执行下述操作,就能像平时一样正常debug了

在这里插入图片描述

2、代码中添加

在你要执行的代码开头添加下述内容

import debugpy

# 设置监听端口(1234 你可以自定义,但后续配置launch时)
debugpy.listen(("0.0.0.0", 1234))
debugpy.wait_for_client()
print("🚀 Waiting for VSCode debugger attach...")

然后按照之前所述的方式配置launch.json,需要注意的是,你的代码中就不用加入debugpy,只需要正常启动

python train.py --your-args

终端会输出🚀 Waiting for VSCode debugger attach... ,然后在vscode左边的debug中执行launch.json配置就能正常debug
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐