ROS第五梯:ROS+VSCode+C++单步调试

news/2024/9/23 7:01:03/

解决问题:在ROS项目中进行断点调试。

第一步:创建一个ROS项目或者打开一个现有的ROS项目。

第二步:修改c_cpp_properties.json

增加一段命令:

"compileCommands": "${workspaceFolder}/build/compile_commands.json"

第三步:修改task,json

把task,json文件中的label改成catkin_make:

第四步:生成和修改launch.json文件

生成launch.json文件

添加和修改内容:在launch.json文件右下方点击“Add configuration”,然后选择“C/C++: {gdb}Launch”,则会在json文件中生成一堆默认信息,一般仅需修改以下内容:

(1)program:对应可执行文件的路径,一般在devel/lib/包名/可执行文件名(节点名称)

(2)增加preLaunchTask:跟task.json里面的label对应。

第五步,修改对应包的CMakeLists.txt文件

在文件前面添加下列命令(该命令用于在调试过程显示局部变量的值):

SET(CMAKE_BUILD_TYPE Debug)

第六步,进行编译调试——按F5


http://www.ppmy.cn/news/1529199.html

相关文章

C++: 两个栈实现队列

解题思路 栈,一个口,先进后出;队列,两个口,先进先出; 两个栈就有两个口,一个当入口,另一个当出口 当stack2为空,将stack1元素push到stack2,再pop stack2 ; 当…

计算机三级网络技术总结(二)

RPR使用统计复用的方法传输IP分组IEEE802.16a用于固定结点接入ADSL技术为速率非对称型,上行速率为64kbps~640kbpsRAID是磁盘阵列技术在一定程度上可以提高磁盘存储容量但不能提高容错能力中继器工作在物理层VTP有三种工作模式:VTP Server、VTP Client 和VTP Transpa…

Matlab Simulink 主时间步(major time step)、子时间步(minor time step)

高亮颜色说明:突出重点 个人觉得,:待核准个人观点是否有误 高亮颜色超链接 文章目录 对Simulink 时间步的理解Simulink 采样时间的类型Discrete Sample Times(离散采样时间)Controllable Sample Time(可控采样时间) Continuous Sample Times(…

Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)

请放心观看,已在正式环境部署验证,流程无问题! 所用系统为国产化麒麟银河 aarch64系统,部署时间2024年9月份! #查看服务器信息 #涉及生产服务器,所以输出信息隐藏了一部分[rootecs-xxxxx hdata]# uname -…

Java 直接使用JDBC操作数据库

直接使用JDBC操作数据库 package com.wzb.JDBCExercise20240922;import com.wzb.Pojo20240922.User; import java.sql.*; import java.util.ArrayList; import java.util.List;public class JDBCExercise {// 通过Mybatis可以便捷地操作数据库,但是Java语言操作数据…

Wireshark学习使用记录

wireshark 是一个非常好用的抓包工具,使用 wireshark 工具抓包分析,是学习网络编程必不可少的一项技能。 原理 Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境,另外一种就是应用比较多的互联网环境,也就是连接…

基尔霍夫衍射理论

一、矢量理论到标量理论 前提条件:介质同时具有线性、各向同性、均匀性且无色散。 结论:电场和磁场的所有分量的行为完全相同,可由单一的一个标量波动方程描述,标量理论可以完全准确的代替矢量理论。 若介质不具备上述前提,则用标量理论来表征矢 量理论就会引入误差。 …

C语言 | Leetcode C语言题解之第430题扁平化多级双向链表

题目: 题解: /* // Definition for a Node. class Node { public:int val;Node* prev;Node* next;Node* child; }; */#define INIT_CAPACITY 4class Solution { public:struct c_stack{Node** array;int top;int capacity;};//创建栈struct c_stack* St…