Source: https://bitahub.ustc.edu.cn/help/md/3.3%20%E8%B0%83%E8%AF%95%E4%BB%BB%E5%8A%A1.html

调试任务指的是启动时选择节点类型为debug的任务，与之对应的是执行任务，其他类型卡的任务都是执行任务。

两者之间的区别在于，调试任务有Jupyter或ssh可以连接到任务中，其对/code目录进行的修改会被保存；调试任务最多只能运行3小时，超时会被kill（debug资源有限），而执行任务则会完整地执行用户设定的启动命令。

BitaHub提供在线的交互式开发调试服务，根据使用习惯，您可以从两种不同的调试方式中选一个。

一、使用Jupyter调试模式

调试模式基于Jupyter集成环境，在WEB界面直接使用。

调试任务步骤如下：

1. 启动任务

如下图所示，在项目详情页点击 调试 按钮，在弹出的窗口中，根据需要GPU卡的个数。





确认完成资源配置后进入等待资源分配状态，此时按钮变为 等待中。

2. 打开Jupyter调试工具

如果成功分配到调试任务资源，则任务列表会生成相应的调试任务。等待中 按钮会变为 启动Jupyter，点击即可打开Jupyter调试工具。



3. 在线调试

下图为调试界面，您可以在网页中直接编写代码和运行代码，代码的运行结果也会直接在代码块下显示。您还可以使用集成的Terminal工具进行交互操作。




终端默认启动是的sh，如需使用复制粘贴和自动补全功能，需在命令行中输入bash。

 关于Jupyter的详细操作指导，请参见Jupyter使用文档。


二、使用SSH连接调试

除了使用集成的Jupyter调试环境，您还可以使用SSH连接方式。但要注意，SSH和Jupyter只能选择一种。

SSH方式的调试步骤如下：

1. 选择新建任务

如下图，在项目详情页选择新建任务：



2. 选择debug类型卡

在运行任务界面，选择GPU类型为debug，然后提交任务：



为什么启动命令是sleep 3h？这里只是为了让这个任务可以停留3个小时，注意命令执行完成时任务即终止。如果你预计仅需要调试1小时，那么写成sleep 1h也可以。

3. 利用SSH进行调试

等待任务分配到资源后，点击该任务行的查看按钮，进入任务详情页：



滚动到页面最下端，在SSH信息版块，可以看到该任务的SSH信息，利用该信息即可进行SSH方式调试。


SSH方式的调试，需要确保您的image镜像中安装了openssh-server。


4.配置个人SSH key

平台会为每次启动的任务新初始化一个ssh key，有些使用者会觉得不方便，想每次都使用自己固定的私钥进行登录。那么可以在启动命令中进行配置，如使用类似的启动命令(请替换为个人的公钥)：

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfA6q+2qeTYzabyO+KnMruIuUsYKNfM9kz6w+QVR3Qm6llKgwwtO9c0STXSQqFyyTH28UU/eoLSKyywVN4S4EZ4Pm1uBkf3H3CPLNSt8JT7nCBAEpxW6/lVHmexTfl6iheG+CD1jercMWENSyJLRPeZff+P/2caigHhOEte7+uOWD0uhD/3CXEaKaPAE6NVWP/9KsW7Se64wMAlljwnCwYNbugfrn3AB2JQOPYvHjmmvNh7BdcTgiu5U1R9hu9HRmC4mSEj87BL4vAHGAMd1efRiJ7UyC8rnXQbGrYOLQKE5xM1klifvQ7ifffpW2UjaNwSRd8ZS4HVmST2hjLGRAf xx@ustc" >> ~/.ssh/authorized_keys ; sleep 3h

这样就可以使用个人的私钥登录了（平台提供的私钥也依然可用）。

这步不是必须的。