首页 > 其他分享 >使用clion进行远程调试

使用clion进行远程调试

时间:2023-06-13 10:01:50浏览次数:33  
标签:buildroot 编译 源码 clion 远程 调试

目标机器是一台arm64的板子,由builroot构建。首先添加一项运行配置,可以通过运行--->编辑配置来,也可以通过锤子旁边的下拉框来。

img.png

点击+号,下拉框中选择远程调试,因为这里gdbserver是跑在arm64的板子上,clion这边相当于一个gdb client,所以选择远程调试,而不是远程gdb服务器。

接下来就是配置这个远程调试,关键的有4个项:

  • 调试器:就是交叉编译工具链里面的那个gdb,我这里是buildroot,它在buildroot/out/xxxx/host/bin
  • 'target remote'实参:知道 gdb+gdbserver的都明白啥意思,就是gdbserver那端的ip:port或者串口设备名,这里需要注意一下,你的~/.gdbinit这个文件里面配置的target remote动作一定要删除,不然远程调试会失败,应该是冲突了。
  • 符号文件:一般就是编译出来的你将要调试的程序,通常情况下我们通过-g 或者 -ggdb选项来编译带调试信息的程序,但是也可能使用工具把调试的符号信息单独剥离出来,这时要指定这个剥离出来的文件。
  • sysroot:就是交叉编译时的逻辑根目录,交叉编译工具链链接时,路径的搜索就是基于这个逻辑根目录的,调试的时候,一些库的信息打印,例如做bt操作时,也是依赖它。在buildroot下,它在buildroot/out/xxxx/staging

此外还有个小细节需要提到,主要是和我用buildroot构建相关。因为buildroot构建(openwrt也类似,它基于buildroot)时,会把源码从tar包里面解压到编译目录,编译。如果是本地的源码,它也会通过rsync同步到编译目录,远程调试时,符号指向的文件路径是编译目录里面那个,clion却是在你的本地源码里面建立工程的,所以会有些问题,此时只需要做一下路径映射就可以解决这个问题:
远程路径填:你的应用在buildroot的编译目录
本地路径填:你clion工程对应的这个项目的源码目录

标签:buildroot,编译,源码,clion,远程,调试
From: https://www.cnblogs.com/thammer/p/17476692.html

相关文章

  • Ubuntu-20.04.6-server安装MySQL实现远程连接
    Ubuntu-20.04.6-server安装MySQL,修改密码安装MySQL一、查看是否安装数据库mysql--version二、更新系统中的所有软件包和存储库sudoaptupdate三、安装Mysql最新版(我这里已经安装好了)sudoaptinstallmysql-server四、安装成功后,mysql--version查看版本五、查......
  • 华为配置案例1:配置远程登录交换机
    1.使用Telnet访问华为设备(1)配置telnet登录真机上需要先启用telnet服务[AR1]telnetserverenable1password认证AR1配置telnet[AR1]user-interfacevty04[AR1-ui-vty0-4]authentication-modepasswordPleaseconfiguretheloginpassword(maximumlength16):6[AR1-ui-vty0-4]......
  • WMIC远程执行命令横向移动
    WMIC远程执行命令横向移动目录WMIC远程执行命令横向移动一、wmic介绍二、wmic常用命令三、wmic配合powershell上线CS四、Wmiexec配合powershell上线CS五、wmiexec.vbs配合powershell上线CS六、Invoke-WMIExec.ps1配合powershell上线CS七、Invoke-WMIMethod.ps1上线CS一、wmic介......
  • DVE 调试手段强制修改信号的值
    1、修改的是DUT输入的值即只能修改激励,DUT的输出是无法修改的 2、设置Forcevalue Freeze代表将pready一直冻结在1‘b0的值deposit代表pready可以被subsequent驱动覆盖3、查看设置的force值 ......
  • UOS为被远程(ssh)做准备
    1.进入开发者模式2..关闭防火墙iptables-F3..安装sshaptinstallssh(可能需要更新源才能安装sudoaptupdate) ......
  • NFS远程挂载
    NFS远程挂载一、概述NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源NAS存储:NFS服务的实现依赖于RPC(RemoteProcessCall,远端过程调用)机制,以完成远程到本地的映射过程。在Centos7系统中,需要安装n......
  • win10系统开启同时多用户远程连接桌面,支持22H2,版本10.0.19041.2075
    1.打开远程桌面控制并开启多用户连接1)win+r打开运行窗口,输入gpedit.msc,进入“本地组策略编辑器”2)按以下步骤找到远程桌面会话主机:计算机配置-->管理模板-->Windows组件-->远程桌面服务-->远程桌面会话主机-->连接 3)编辑远程桌面会话主机连接 3.1)双击“允许用户通......
  • 【Ubuntu22.04】安装MySQL数据库,修改root用户密码,实现远程访问,
    预备条件本次实验使用静态IP的地址192.168.1.81作为mysql-001服务器地址,并配置为本地域名mysql-001:打开Powershell(Window自带)使用SSH方式连接服务器,用户名test,密码:123456:安装Mysql:更新软件源aptupdate安装MySQL8.0,因为Ubuntu22.04不支持MySQL5.7sudoaptinst......
  • java8随手记(包含idea连接远程分支出现Nothing to update问题)
    Steam流一、映射1.map()和.flatMap()map将数据放入集合中,返回Steam流中。例如:map集合{1,2,3},返回Steam流[a,b,c,{1,2,3}]flatMap将将集合中的数据,返回Steam流中.例如:flatMap集合{1,2,3},返回Steam流中[a,b,c,1,2,3]注意:add与addAll有同样的效果。   ......
  • Jenkins Pipeline 密钥实现远程部署
    前提:已配置jenkins秘钥凭证 一、配置流程1.1片段生成1、按如下图选择2、新增密钥信息1.2脚本配置以上配置完成后,接下来就可以在Jenkinsfile中配置了,:stages{stage('xx启动'){steps{echo"xx启动"dir("${SRC_PATH}")......