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

(三分钟了解debug)SLAM研究方向-Debug总结

在研究SLAM领域的过程中,最常用的编辑器为CLION和Vscode两个,这篇文章中对这两个编辑器进行总结。(当然可能是一篇水文,在阅读代码的过程中到底如何打断点,如何推断变量的作用以及监控变量的取值,这些还是要靠自己日积月累的锻炼)

Ubuntu下录频软件的推荐:

Simple Screen Recorder

(安装代码如下,直接在命令行里面复制黏贴下列三行,即可得到一款自己心仪的录频软件)

#添加源

sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder

#更新源

sudo apt-get update

#安装

sudo apt-get install simplescreenrecorder

Release模式 VS Debug模式

首先这两种模式需要在cmakelistl.txt里面进行设置,相关语句为:

SET(CMAKE_BUILD_TYPE “Debug”)

Or

SET(CMAKE_BUILD_TYPE “Release”)

以上语句就可以设置release模式和debug模式两种。

Q:Debug和Release模式的不同

A:①Debug通常称为调试版本,通过一系列编译选项的配合,编译结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。

②Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试,所以不保存调试信息,同时它往往进行了各种优化,以期达到代码最小和速度最优,为用户的使用提供便利。

③Debug跟Release在初始化时所做的操作是不同的,Debug是将每个字节都赋值成0xcc,而release的赋值接近于随机。

总的来说,debug对编程人员非常友好,但是其代码没有被系统进行优化,所以运行时间长。而release模式是专门将代码发布出去的,经过编译系统的底层优化,所以代码运行速度快,代码的占用空间小,利用用户的使用。

VSCODE的三种安装方法:

1、Ubuntu商店里面直接安装,这种好像说注释里面敲不了中文?

2、命令行安装:1. sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make2. sudo apt-get update3. sudo apt-get install ubuntu-make4. umake ide visual-studio-code

3、百度搜vscode 官网进行安装

(安装的话没啥难度,直接百度搜一搜安装vscode,一般都有教程,这个有手就行)

启动方式: 我喜欢敲code . 当然这个因人而异 这个就跳过了没啥好写的

拓展包:打开vscode界面以后左面那一条中有个扩展的选项,里面是一些扩展的选项,可以自行根据需要安装,有汉化包、括号上色、c编译器、java、python等等等,这些可以自行搜索vscode最实用的插件,这些网上都有,可以根据自己的喜好自行下载。

Vscode里面有个多文件编译,里面需要自行配置launch.json和tasks.json

"version": "0.2.0",

"configurations": [

{

"name": "(gdb) 启动",// 配置名称

"type": "cppdbg", // 配置类型

"request": "launch",// 请求配置类型,可以为launch(启动)或attach(附加)

"program": "/home/", // !将要进行调试的程序的路径

"args": [""], // !可执行文件的参数

"stopAtEntry": false,

"cwd": "${workspaceFolder}", // 调试程序时的工作目录,${workspaceRoot}即代码所在目录

"environment": [],

"externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台

"MIMode": "gdb",

"setupCommands": [

{

"description": "为 gdb 启用整齐打印",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

]

}

]

这里面需要更改的地方则是调试程序的路径和执行文件时所需要输入的参数

给使用虚拟机的小伙伴一条建议:

针对虚拟机,我的建议是拿来练一练cmake,看一看slam源码,并且跑跑作者开源的数据集是完全没压力的,但是如果真的要进行SLAM部署的话,还是建议装一个Ubuntu的系统,直接插上u盘,疯狂按delete键,进入bios,然后选择启动项,然后重启电脑,try Ubuntu一下,然后点下一步,安装就基本ok。这里的话,一个建议,就是先装Windows 再装Ubuntu,不要问为啥,问就是如果先装了Ubuntu 你大概率安装Windows的时候会把Ubuntu覆盖掉。

解决ros安装过程中 sudo rosdep init报错

A:这个情况100%就是没用外网的原因,有一个比较方便省事的途径,那就是从一台装了ros的电脑里面拷贝一下.ros文件,这个需要ctrl+h显示隐藏的文件,因为Ubuntu里面以.开头的文件都是隐藏的。然后就可以直接roscore 看看ros能不能启动嘞

段错误:是指访问了不可访问的内存,例如访问了不存在的内存地址,访问了系统保护的内存地址,访问了只读的内存地址等等情况。

(可能面试的时候会考叭 简单记忆一下即可)Const * const 指针的记忆:其实就看 const 的位置。const,在指针的星号之前,那么就是指向const 的指针,也就是 *p 的内容是常量,不能被改变。

const 在星号之后的话,那么 ,指针是const的,也就是这个指针指向的地址,不能被改变的,所以,const 指针就必须进行初始化,然后这个地址就是一直被固定住了,不能内改变的。

这篇是对debug的一个总结,其中知识点的话还是靠平时的积累,这篇文章的话算是水文一篇。 结束,写于2022.12.19

相关文章:

  • 人人都能看懂的Spring底层原理,看完绝对不会懵逼
  • 我的大二web课程设计 使用HTML做一个简单漂亮的页面(纯html代码)
  • 面向切面编程
  • 【Linux】shell 及权限理解
  • 交换类排序
  • Git学习笔记-1.Git基础知识
  • 无线传感网络的自适应协作数据传输方法
  • 统计学习方法 李航 课后习题答案 第二版 机器学习
  • 分布式光伏运维平台具体有哪些功能?
  • 登录拦截器、过滤器中注入bean 操作Redis,RedisTemplate为unll问题
  • 【MybatisPlus】最全面的MybatisPlus通关教程
  • 2022 软件测试填空判断题【太原理工大学】
  • 万字长文,彻底搞懂分布式缓存Redis
  • Android -- 每日一问:如何检测内存泄露,如何进行内存优化?
  • 10_缓存-2_二级缓存
  • [LeetCode] Wiggle Sort
  • 【刷算法】求1+2+3+...+n
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • PAT A1050
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Swift 中的尾递归和蹦床
  • vue 配置sass、scss全局变量
  • Vue.js源码(2):初探List Rendering
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • zookeeper系列(七)实战分布式命名服务
  • 第2章 网络文档
  • 分布式熔断降级平台aegis
  • 分享几个不错的工具
  • 将 Measurements 和 Units 应用到物理学
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 每天一个设计模式之命令模式
  • 配置 PM2 实现代码自动发布
  • 前端临床手札——文件上传
  • 前端相关框架总和
  • 手写一个CommonJS打包工具(一)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 自定义函数
  • PostgreSQL之连接数修改
  • ​什么是bug?bug的源头在哪里?
  • ###C语言程序设计-----C语言学习(3)#
  • #Lua:Lua调用C++生成的DLL库
  • #pragma data_seg 共享数据区(转)
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (4)(4.6) Triducer
  • (C语言)逆序输出字符串
  • (day6) 319. 灯泡开关
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (初研) Sentence-embedding fine-tune notebook
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十一)图像的罗伯特梯度锐化
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)chrome浏览器收藏夹(书签)的导出与导入