目录[-]
c,c++程序开发时,经常会用到需要进行在线调试方法,我们可以采用断点方式进行调试,同样ros程序只是一个框架,其同样可以采用断点的方式进行调试。
1、开发环境安装
vs code 下载链接
2、插件安装
► c++ Intellizense 插件安装
• 直接在vscode 内部搜索 c++即可。
► ros插件安装
• 直接在vscode 内部搜索ros即可。
3、vscode下ros使用GDB调试配置
► vscode中已经继承了gdb调试器,按下F5进行单步调试时或通过调试菜单->打开配置 选项,打开配置文件时,则默认会在.vscode目录下生成launch.json文件,打开launch.json配置文件。
► 将其中的program参数项,改为需要调试的node的可执行代码名称,此处最好设置为绝对路径,且路径中不包含中文名字。
► 配置好的一个例子如下图所示。
![](https://img-blog.csdnimg.cn/img_convert/d2d9d52c49100de7ce949390d175ba2a.png)
4、vscode下ros使用配置
► 由于我们使用了第三方的头文件,以至于导致在debug时找不到库文件的路径
► 在命令行模式下进行编译,输出编译配置信息
catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes
► 命令执行结束后,会在项目的/build/目录下生成一个配置文件,名称为:compile_commands.json.
► 将compile_commands.json的路径写入c_cpp_properties.json文件的compileCommands参数下
► 最终的文件如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/f3ea538161399bbf867cb73b6744c38c.png)
如果没有执行该项目会报: 找不到”ros/ros.h”文件
5、catkin_make 设置
由于vscode没有内置cmake功能,因此在vscode下布置一键catkin_make功能,需要使用Task功能来进行配置。
► 使用ctrl+ship+p 打开命令模式
► 键入 tasks: Configure Task
► 此时会在.vscode目录下,自动生成tasks.json文件。其格式如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "ros_catkin_make",
"type": "shell",
"group": {"kind":"build","isDefault":true},
"command": "catkin_make",
"presentation": {
"reveal": "always"//可选always或者silent或者never
} }
]
}
"group": {"kind":"build","isDefault":true},改行的指令为将这个任务组添加到build组里,名称为label参数项目设置的名称。isDefault设置为true时按下编译按钮 ctrl+shift+b 则自动开始执行该任务,设置为false时,当按下编译按钮 ctrl+shift+b后则需要进行选择。
6、遇到的问题
► 找不到项目包含的头文件(#include …… 有警示下划线)
• 点击黄色指示灯,点击edit c_cpp_properties.json,此时vscode会自动在配置文件下新建并初始化一个c_cpp_properties.json文件。
• 将头文件路径包含在c_cpp_properties.json文件中的includePath项即可。