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