type
status
date
slug
summary
tags
category
icon
password
Content
相比于其他集成度高的软件 (如 Pycharm),vscode 中调试程序(如 C++,Python)的方法并不那么直观。vscode 中主要是借助
launch.json
和 task.json
两个配置文件以及各个语言对应的插件实现调试功能。下面首先介绍 launch.json
和 task.json
的基本配置,然后分开叙述不同程序语言的常用配置。launch.json
和 task.json
launch.json
文件仅和调试相关,每一个调试配置都对应该文件内一个单元。task.json
则不只是应用于调试,主要用于配置一些定制化的自动化脚本,帮助我们一键完成某个复杂操作。两个文件都位于项目根路径的
.vscode
文件夹内,默认不存在。(.vscode
文件夹存放着 vscode 对于当前文件夹的所有配置。)launch.json
- 新建
launch.json
文件:
https://rwk5uyy66ao.feishu.cn/space/api/box/stream/download/asynccode/?code=Yzk4NDgwMzcxOTIyNGYyMDc2Y2QzYWUzZTYxOTBlZDhfVmN6bFhObHhSYThveEIxeEtVRkhsZXE0UERsZXBWdUpfVG9rZW46QUNZb2JDU0U5b3VVUW54WjJaNWNodnhkblJnXzE2ODg3MzQwMTY6MTY4ODczNzYxNl9WNA
- 新建后进入
launch.json
文件:
https://rwk5uyy66ao.feishu.cn/space/api/box/stream/download/asynccode/?code=OTM1MGQ1YjAxOGYzZmIzYzExZGNjMDhiOTRmN2ZkZDNfd25Ybm5LYXZLbWRwckVIVUF4NEZjd1NpS1BMTmdiNFJfVG9rZW46S01oa2Jjc01Wb3FxeW54VnBnbmNnOGQyblVnXzE2ODg3MzQwMTY6MTY4ODczNzYxNl9WNA
- 当安装了对应的程序语言的插件后,可以很方便地基于模板创建一个调试配置。点击
launch.json
右下角的添加配置,然后选择对应的程序语言即可新建一个该程序语言的调试配置模板。
https://rwk5uyy66ao.feishu.cn/space/api/box/stream/download/asynccode/?code=YmYzNWQ4ZDA3OTExNjkzM2FiODE4ZGZkMzFkYTkzYWVfQnV2bGQxaGtKMEpOaXRxdEVHY0NEcUluN2FjU2dHRjFfVG9rZW46VGIwQWIwUm8wb1dmV1N4ZURncGNxZnFkbnNjXzE2ODg3MzQwMTY6MTY4ODczNzYxNl9WNA
- 一个简单的调试配置文件如下,包含一个调试
main.py
和一个调试 ROS 的main.launch
的配置。
- 写好上述的配置文件后,即可在调试菜单内选择要调试的程序进行调试。配置文件完成后就不需要再额外选择任何其他东西。
https://rwk5uyy66ao.feishu.cn/space/api/box/stream/download/asynccode/?code=YjEwYzIzMTAwMjc0ZjU1Y2M4ZmE1N2FmN2RjNTc1MDlfbkV5VFJVbHRjNGNQb2VBbVptYVNabVoyZEMyamNuQjZfVG9rZW46WmxxcmJXdExTb3NyQXV4RlpYUGNuNGlYbm5oXzE2ODg3MzQwMTY6MTY4ODczNzYxNl9WNA
task.json
- 新建、配置
task.json
文件
https://rwk5uyy66ao.feishu.cn/space/api/box/stream/download/asynccode/?code=ODkxZjExYTlhMTljYjRiYTU1YWYwMWY3MGFlMmEyOTZfZEsxOEhjYTQzSXZnV1FjYXh6NHhtU0dSaEQ2T3lnVGdfVG9rZW46TzRqNGJ3aUJ4b0tCd1h4cUpFQ2NPenZObkpkXzE2ODg3MzQwMTY6MTY4ODczNzYxNl9WNA
- 一个示例文件如下,包含一个删除 ROS 中编译结果的任务和一个需要指定很多参数的
catkin_make
的编译的任务。
- 配置完成后,依然在命令面板运行指定任务。
https://rwk5uyy66ao.feishu.cn/space/api/box/stream/download/asynccode/?code=YzRiY2U3ZTBlYjMyOTU3NzRkOGNlMzg4ZjlkMjdhMTNfSHNPaWVyYmFKbXp2RUhVOHd4MFQ0QWVvdWs5T2VLYWxfVG9rZW46VG03VmIzNVZZb2h1WER4WWpNQ2Nqb2ljblBlXzE2ODg3MzQwMTY6MTY4ODczNzYxNl9WNA
Python 调试
以下的示例文件包含了常规 python 调试中可能需要配置的所有内容。
program
参数:一般使用宏+文件名的配置方法。${file}
代表当前打开的文件,即第一个配置是一个灵活配置,它会调试当前窗口打开的 python 文件。第二个配置则是一般固定调试某个 python 文件的方法,${workspaceFolder}
表示项目根目录,即 vscode 当前打开的文件夹路径。
cwd
参数:如果不设置该参数,调试时就会在项目根目录下运行。若设置则等效于先cd
进入指定文件夹后再运行。
justMyCode
参数:是否只调试自己代码的部分。可以简单理解为,如果为 True 则报错不会进入到每个库的内部而只停留在我们的代码中。
args
参数:运行 python 程序时输入的参数。例如正常运行时是python app.py --device cuda:0 --sam_model_type vit_h --port 12212
,那么对应该参数要写成["--device", "cuda:0", "--sam_model_type", "vit_h", "--port", "12212"]
。空格是分隔符,按顺序将参数分割后写入args
即可。
env
参数:环境变量设置。例如指定使用哪块 GPU("CUDA_VISIBLE_DEVICES": "1"
)。
Ref
Links:
launch.json
和task.json
支持的参数表:VScode的task与launch学习笔记_Mapleaf98的博客-CSDN博客