当前位置: 首页 > wzjs >正文

做金馆长网站网站53货源网

做金馆长网站网站,53货源网,软件下载网站源码,seo优化上首页在vscode中Debug ros c程序 1 在Debug模式下编译 如果用命令行catkin_make,在输入catkin_make时加上一个参数: catkin_make -DCMAKE_BUILD_TYPEDebug 或者直接修改CMakelist.txt,添加以下代码: SET(CMAKE_BUILD_TYPE "D…

在vscode中Debug ros c++程序

1 Debug模式编译

如果用命令行catkin_make,在输入catkin_make时加上一个参数:

catkin_make -DCMAKE_BUILD_TYPE=Debug

或者直接修改CMakelist.txt,添加以下代码:

SET(CMAKE_BUILD_TYPE "Debug")

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")

SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

2 编写launch文件

 rosrun package node 改为roslaunch package xxx.launch

3 vscode debug配置

"version": "0.2.0","configurations": [{"name": "ROS: Launch","type": "ros","request": "launch","target": "/home/aaa/mycompany/15weeding/infer/yolov8/yolov8_ws_4/src/instance_seg/launch/instance_seg.launch"},

4 Debug

打断点

启动roscore,点击绿色三角

调试方法

一种是调试coredump文件,另一种是在线调试。

大多使用在线调试,而在线调试又分为 roslaunch 调试和 rosrun node调试

使用gdb命令行在线调试

1安装xterm

sudo apt install xterm

2 Debug模式编译

如果用命令行catkin_make,在输入catkin_make时加上一个参数:

catkin_make -DCMAKE_BUILD_TYPE=Debug

或者直接修改CMakelist.txt,添加以下代码:

SET(CMAKE_BUILD_TYPE "Debug")

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")

SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

launch文件添加GDB调试指令

在node标签中添加参数

launch-prefix="xterm -e gdb -ex run --args"

<launch>

    <node pkg="learning_topic" type="person_subscriber" name="talker" output="screen"  launch-prefix="xterm -e gdb -ex run --args"/>

    <node pkg="learning_topic" type="person_publisher" name="listener" output="screen" />

</launch>

The launch-prefix attribute of the tag that, among other things, makes it easy to debug a ROS node process. Here are some example launch-prefixes you might find useful:

launch-prefix=“xterm -e gdb --args” : run your node in a gdb in a separate xterm window, manually type run to start it

launch-prefix=“gdb -ex run --args” : run your node in gdb in the same xterm as your launch without having to type run to start it

launch-prefix=“stterm -g 200x60 -e gdb -ex run --args” : run your node in gdb in a new stterm window without having to type run to start it

launch-prefix=“valgrind” : run your node in valgrind

这个valgrind工具可以用于检测内存泄露,并执行性能分析

launch-prefix=“xterm -e” : run your node in a separate xterm window

launch-prefix=“nice” : nice your process to lower its CPU usage

launch-prefix=“screen -d -m gdb --args” : useful if the node is being run on another machine; you can then ssh to that machine and do screen -D -R to see the gdb session

launch-prefix=“xterm -e python -m pdb” : run your python node a separate xterm window in pdb for debugging; manually type run to start it

rosrun node 的方式进行调试

rosrun --prefix 'gdb -ex run --args'  [package_name]  [node_name]

gdb core dump 调试

        在Linux下可通过core文件来获取当程序异常退出(如异常信号SIGSEGV, SIGABRT等)时的堆栈信息。core dump叫做核心转储,当程序运行过程中发生异常的那一刻的一个内存快照,操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个core文件里,叫core dump。core文件是程序非法执行后core dump后产生的文件,该文件是二进制文件,可以使用gdb、elfdump、objdump打开分析里面的具体内容。

产生core dump的可能原因:

(1)  内存访问越界;

(2) 多线程程序使用了线程不安全的函数;

(3) 多线程读写的数据未加锁保护;

 (4) 非法指针;

 (5) 堆栈溢出。

Debug模式编译

如果用命令行catkin_make,在输入catkin_make时加上一个参数:

catkin_make -DCMAKE_BUILD_TYPE=Debug

或者直接修改CMakelist.txt,添加以下代码:

SET(CMAKE_BUILD_TYPE "Debug")

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")

SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

1、查看core dump是否打开,如果返回0代表没有打开,返回 unlimited 表示已经打开

ulimit -c

2、打开core dump

ulimit -c unlimited

执行这行命令之后,只针对当前终端有效。

如果想对所有终端都有效则在 .bashrc 末尾添加这行代码:

ulimit -c unlimited

3、生成可执行文件,要加-g选项,以获取到具体的行号信息,否则没有

g++ -g -o main main.c

4、执行程序后生成core文件,core文件默认放在可执行文件相同目录下,且文件名固定为core

./main

5、使用gdb调试core

gdb main core

6、查看程序堆栈信息

bt


文章转载自:

http://6XfnVwqb.qcwrm.cn
http://0maNwUeI.qcwrm.cn
http://cykSP1e9.qcwrm.cn
http://jPLdztFl.qcwrm.cn
http://v62JP1k8.qcwrm.cn
http://InbEdU1s.qcwrm.cn
http://kKfGMg3r.qcwrm.cn
http://Q8ZVNDba.qcwrm.cn
http://bqcFs9kl.qcwrm.cn
http://nvnIgoMg.qcwrm.cn
http://VJ75jP5Q.qcwrm.cn
http://DtnpEtox.qcwrm.cn
http://dc3zfLHX.qcwrm.cn
http://oZ9X9k3m.qcwrm.cn
http://TfAMRlG1.qcwrm.cn
http://Dz9hiHH2.qcwrm.cn
http://C4YgrqPC.qcwrm.cn
http://YnjDSvRM.qcwrm.cn
http://uSpFhOFX.qcwrm.cn
http://pv6H4bPQ.qcwrm.cn
http://Ap8cghBK.qcwrm.cn
http://9OUex9MT.qcwrm.cn
http://LpbpYp1H.qcwrm.cn
http://UHky4RuA.qcwrm.cn
http://3HK1ZMmT.qcwrm.cn
http://oqB84eb4.qcwrm.cn
http://sfy1t1XI.qcwrm.cn
http://WQcYoEIY.qcwrm.cn
http://KoS6qbax.qcwrm.cn
http://1PW9Rnbn.qcwrm.cn
http://www.dtcms.com/wzjs/755895.html

相关文章:

  • 网站开发亿玛酷给力5网站开发人员就业前景
  • 狠狠做网站改成什么了太原网站建设公司5858
  • 西安市阎良区建设局网站深圳市建设行业主管部门官方网站
  • 网站关键词代码知东莞app下载
  • 互联国际网站做网站前景怎么样
  • 网站建设费用做什么科目查看wordpress栏目id
  • 谁能给我一个网站谢谢青海省住房建设厅网站
  • 郑州做网站公wordpress 搬家 404
  • linux上搭建网站阿里云建设网站能干嘛
  • wordpress安装路径和站点地址的设置沈阳网站建设方案
  • wordpress 多站点开启上海网站制作团队
  • 企业网站设计调查问卷工作流程管理系统说明书
  • 如何给网站做地图朗读者外国人做的汉字网站
  • 网站管理与建设总结如何给网站备案
  • 找项目去哪个网站北京亦庄网站建设公司
  • wordpress最新评论怎么做网站关键词优化
  • 网站建设怎样把网页连接起来阿里云 虚拟主机 wordpress
  • 怎么做网站封面上的图北京建网站找哪个公司
  • php做听歌网站计算机应用技术好就业吗
  • 高度重视局门户网站建设制作一个自适应网站
  • 门户网站开发费需入无形资产建设个人网站的要求
  • 唐山如何做百度的网站建设树莓派wordpress速度慢
  • 制作网页前为什么要建立站点wordpress 首页缓存
  • 建设网站导航怎么盈利东莞seo推广机构帖子
  • 有一个做炫舞官网活动的网站刷外链网站
  • 网站注册域名多少钱腾讯企业邮箱收费标准一年多少钱
  • 工信部网站icp备案图片制作方法
  • 自微网站首页找别人做网站
  • 网站建站服务公司做网站的技术要求
  • 做设计网上揽活哪个网站最好寻求一个专业网站制作公司