CLion远程调试嵌入式开发板程序

1. 目的

有时候我们的程序在板端运行崩溃,或不符合预期或者单纯想要单步调试去查看一些变量。很多时候我们不得不加很多打印语句或用gdb 调试。不够直观和方便。clion可以说是现在linux平台最好的C++ IDE了,clion还提供了remote gdb server的功能,可以让我们实现在开发机上打断点单步调试开发板上的程序,在满足使用条件的情况

下,还是非常方便的。

2. 前提条件

板端:具有gdb-server

主机:能够编译目标板的程序

3. CLion设置

3.1 设置一个Deployment

(其实官方步骤里没写这步,但实践看设置一下非常方便后面得使用)



其中SSh configuration就是板子的ssh连接配置。

再设置一下mappings中的Deployment path, 也就是本地路径同步到板子的哪个路径:



还可以设置一下Excluded Paths, 也就是哪些路径不同步到板子,因为板子只是跑下程序,所以代码、其他编译目录等都可以设置不传。



点击完成,第一步配置就OK了。

3.2 上传需要的目录到目标板子

右键想要同步的目录或文件,Deployment->UploadXXX(对应板子deployment)即可。



也可以设置为自动同步,每次有修改,就会自动同步到板子:



如果有文件上传,会有日志:

3.3 设置一个Remote GDB Server

Run->Edit Configures:



要设置上传路径,直接设置为我们在3.1中设置的目录即可,

设置GDB Server的启动参数, 格式为 :端口号 程序路径 程序启动参数。 如上图 ":1234 xxx -h 192.168.17.82"

如果程序需要依赖板子其他路径的库,在Environment 中设置。

至此,设置完成。就可以像本地一样打断点debug了。



总结

用这种远程debug的方式,对于不习惯手动gdb在板子上调试的开发者还是挺方便的,也比print打印去调试更方便。CLion的Remote debug其实是依赖于Remote GDB Server, 并不是其独有的功能,用其他编辑器如VS Code也有插件可以实现类似的功能。

PS: Jet Brains yyds, 支持正版(手动狗头)

CLion远程调试嵌入式开发板程序的更多相关文章

  1. gdbserver远程调试嵌入式linux应用程序方法

    此处所讲的是基于gdb和gdbsever的远程调试方法.环境为:PC机:win7.虚拟机:10.04.下位机:飞嵌TE2440开发板. 嵌入式linux应用程序的开发一般都是在linux里面编写好代码 ...

  2. 使用Visual Studio 利用WinGDB编译和远程调试嵌入式Linux的程序

    写这篇文章的目的在于帮助那些既要使用Visual Studio编写程序又要开发和调试嵌入式Linux 程序的苦命程序员们! 第一步, 安装 WinGDB ,下载位置  http://www.wingd ...

  3. ARM嵌入式开发板

    iTOP-4412 ARM嵌入式开发板----主要特点 iTOP-4412开发平台是北京迅为电子研发设计的嵌入式开发板平台,核心板配备64位双通道2GB DDR3,16GBEMMC存储,三星原厂S5M ...

  4. 学习嵌入式开发板的Android平台体系结构和源码结构

    本文转自迅为论坛资料:http://www.topeetboard.com 推荐学习嵌入式开发板平台:iTOP-4412开发板 下面这张图出自Google官方,展示了Android系统的主要组成部分. ...

  5. 嵌入式开发板iTOP4412学习开发板

    网站:http://www.topeetboard.com 淘宝:https://item.taobao.com/item.htm?_u=okcahs0f42a&id=38712193806 ...

  6. 使用VisualGDB和OpenOCD调试STM32L0开发板

    本教程主要介绍如何配置VisualGDB和OpenOCD来调试STM32L0开发板的固件,使微控制器进入睡眠模式. 我们将创建一个NUCLEO-L031K6开发板的基本工程,并介绍当CPU进入休眠模式 ...

  7. 嵌入式开发板使用网口和nfs进行文件共享

    如果你的开发板有网口,类似于这玩意. 那么,你可以去买根网线,类似于这玩意. 然后你就可以将你的电脑和开发板用网线连起来,通过nfs(网络文件系统)来进行文件夹共享,文件夹共享就相当于挂载,nfs是利 ...

  8. 【4412嵌入式开发板学习笔记】认识uboot

    转自迅为讨论群:http://www.topeetboard.com 重要说明:这份笔记不是4412开发配套的,是我在网上看视频的时候下载上课老师的笔记后修改的.所以我试了一下笔记上的uboot命令, ...

  9. 移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

    目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for w ...

随机推荐

  1. SpringCloud升级之路2020.0.x版-17.Eureka的实例配置

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 上一节我们提到过, ...

  2. 浅看spa单页应用路由

    路由观察浏览器的URL的变更.当URL 变更时,路由会解析它并生成一个新的路由实例. 一个基本的路由是这样的: class Router { private _defaultController: s ...

  3. 【转】CAP定理的含义

    转自:https://blog.csdn.net/pengjunlee/article/details/86517935 1998年,加州大学的计算机科学家 Eric Brewer 提出了分布式系统的 ...

  4. ThreadPoolExecutor八种拒绝策略浅析

    转自:http://www.kailing.pub/article/index/arcid/255.html 前言 谈到java的线程池最熟悉的莫过于ExecutorService接口了,jdk1.5 ...

  5. Servlet学习之复习

    Servlet的注册与运行(Servlet程序通常需要存储在<web应用程序目录>\WEB-INF\classes\目录中) 1.注册Servlet:在web.xml文件中,一个<s ...

  6. GO的GC辣鸡回收(一)

    用户程序通过内存分配器(Allocator)在堆上申请内存,而垃圾收集器(Collector)负责回收堆上的内存空间,内存分配器和垃圾收集器共同管理程序中的堆内存空间. 基本概念 垃圾分类 语义垃圾: ...

  7. js在不同页面的导航背景不同 (设置网站公共头的导航)

    <script type="text/javascript" src="js/jquery.min.js"></script> < ...

  8. MySQL存储结构及SQL分类

    MySQL目录结构 bin -- mysql执行程序 docs -- 文档 share - 各国编码信息 data -- 存放mysql 数据文件 * 每个数据库 创建一个同名文件夹,.frm 存放t ...

  9. JavaScript高级程序设计(读书笔记)之函数表达式

    定义函数的方式有两种:一种是函数声明,另一种就是函数表达式. 函数声明的一个重要特征就是函数声明提升(function declaration hoisting),意思是在执行代码前会先读取函数声明. ...

  10. javaScript知识储备

    javaScript知识储备 组成 ECMAScript(核心) 提供语法.变量等,遵循ECMA-262标准 DOM(文档对象模型) 提供操作HTML标签的API,遵循W3C规范 BOM(浏览器对象模 ...