【学习总结】Ubuntu中vscode用ROS插件调试C++程序

1、教程

参考博客:
【ROS】 在VScode中 ROS Debug 配置方法非常详细版

关于launch文件的配置:
launch.json

yaml 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "ROS: Launch",
            "request": "launch",
            "target": "/home/larrydong/clins_ws/src/clins/launch/clins_offline.launch",
            "launch": [
                "rviz",
                "gz"
            ],
            "type": "ros",
            "arguments": ["config_name:=/config/kaist.yaml"]
        }
    ]
}

其中,launch是roslaunch指令,arguments是运行roslaunch时跟的参数。

原则上,安装了人ros插件后,创建这个launch文件,就可以用ros进行调试了。

2、遇到的问题:

断点无效

打了断点,但运行时是虚的,且vscode提示:

Module containing this breakpoint has not yet loaded or the breakpoint address could not be obtained

原因:catkin_make时不是debug模式,没有调试信息。虽然自己在catkin_make时加了 -DMAKE_BUILD_TYPE=Debug,但ros包的CMakeLists.txt中这个被set成了release,所以没有生成。所以记看下CMakeLists

bash 复制代码
 set(CMAKE_BUILD_TYPE "DEBUG")

vscode在运行时总是跳转到anaconda虚拟环境

虽然在bashrc中禁用掉了anaconda的虚拟环境,但vscode还是会在调试时新开一个虚拟环境,然后进入虚拟环境。

解决办法:

settings.json中,设置不进入虚拟环境:

yaml 复制代码
"python.terminal.activateEnvironment": false,

之后,启动时进入这个.vscode启动vscode,即进入xxx_ws后,运行

bash 复制代码
code .

(ROS插件,依赖python插件,因此无法通过禁用python解决这个问题 )

3、小结

真香。不需要反复print和编译耗时间了。

相关推荐
AA陈超7 分钟前
ASC学习笔记0020:用于定义角色或Actor的默认属性值
c++·笔记·学习·ue5·虚幻引擎
檐下翻书1732 小时前
从入门到精通:流程图制作学习路径规划
论文阅读·人工智能·学习·算法·流程图·论文笔记
SalvoGao2 小时前
Python学习 | 怎么理解epoch?
数据结构·人工智能·python·深度学习·学习
思成不止于此2 小时前
深入理解 C++ 多态:从概念到实现的完整解析
开发语言·c++·笔记·学习·多态·c++40周年
Highcharts.js2 小时前
学习 Highcharts 可视化开发的有效途径
学习·数据可视化·highcharts·图表开发·可视化开发
胡童嘉3 小时前
长沙烈焰鸟网络科技有限公司实习day12+软件测试学习day3日记
学习
2501_941145854 小时前
虚拟现实与增强现实技术在教育培训与沉浸式学习场景中的创新应用研究
学习·ar·vr
inputA4 小时前
【LwIP源码学习8】netbuf源码分析
android·c语言·笔记·嵌入式硬件·学习
Java开发追求者4 小时前
vscode导入springboot项目
java·ide·spring boot·vscode
d111111111d5 小时前
STM32外设学习-I2C(细节)--学习笔记
笔记·stm32·单片机·嵌入式硬件·学习