vscode命令行debug
vscode命令行debug
一般命令行debug会在远程连服务器的时候用上,命令行debug的本质是在执行时暴露一个监听端口,通过进入这个端口,像本地调试一样进行。
这里提供两种方式:
- 直接在命令行中添加
debugpy
,适用于python启动 - 在python代码中添加
debugpy.listen
,适用于一些非python启动的情况(如deepspeed
一些前缀不是python的启动方式)
1、命令行添加
原始启动代码
python train.py --your-args
添加后的启动代码
python 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