使用vscode进行远程服务器代码调试
使用了一段时间的vscode对服务器上的tensorflow代码进行调试,基本常用的功能摸索了一下,这里做一个总结记录。
1. 准备
-
主机、服务器安装ssh
-
将主机的ssh
id_rsa.pub
写入服务器的/home/user_name/.ssh/authorized_keys
文件中 -
vscode 的扩展中安装
Remote Development
套件
2. 连接服务器
-
vscode中点击
F1
,选择remote-ssh
-
输入用户名及服务器ip:
user_name@10.10.10.10
-
File -> open folder
选择你的工作文件夹 -
此时,已经可以看到目录下的文件和代码,但是还不能使用debug功能
3.调试Debug
-
安装扩展:python
-
我还在服务器使用了anaconda,故也安装anaconda的扩展
-
此时,可以单机左下角选择调试需要的环境:
-
至此,在程序中设置断点,即可进行调试啦~(
F5
调试,Ctrl + F5
不调试运行)
4. 添加命令行变量
很多时候,跑代码的时候要设置环境变量(比如设置CUDA_VISIBLE_DEVICES)、运行路径、以及代码的命令行参数,按以下步骤操作:
-
打开
Debug -> Open Configurations
-
在
launch.json
中更改,我这里设置了三个不同的debug参数,用于不同的文件使用:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{ "cwd": "/home/junyi/segmentation/tf-swift/",
"env": {"CUDA_VISIBLE_DEVICES":[0]},
"name": "Python: CS Train",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": [
"--dataset","cityscapes",
"--filter-scale","1",
"--random-mirror",
"--random-scale",
"--update-mean-var",
"--train-beta-gamma"
]
},
{ "cwd": "/home/junyi/segmentation/tf-swift/",
"env": {"CUDA_VISIBLE_DEVICES":[3]},
"name": "Python: CS Eval",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": [
"--dataset","cityscapes"
]
}
]
}