【Linux】利用eclipse远程调试目标板程序


在单片机开发中,都可以利用iar或keil等ide,用仿真器对单片机进行调试。而在linux-arm开发中,应用程序运行在目标板的linux系统下, 高效的调试能大大提高开发效率
这个过程自然少不了linux下的调试神器gdb。但问题在于,我现在要调试的是目标板的程序——交叉编译后运行在目标板的程序,而且还要进行远程调试。这里就带来了两个问题: 1.如何远程连接目标板,并使程序进入调试状态;2.调试交叉编译后的程序应该用什么样的gdb。
答案就是——gdbserver + arm-linux-gdb

一、TCP连接主机和目标机

主机即为开发机,通常是在windows下运行了Linux虚拟机。我用的是VBox+Ubuntu16.04;目标机即为产品,或开发板,我这里使用的是海思的开发板。
连接主机和目标机的标志就是互相能ping通。在VBox中将虚拟机的网络设置为桥接模式。进入虚拟机后,将虚拟机IP由DHCP自动获取改为手动,并设置IP与windows在同一网段,设置好后断开连接再重连,终端输入ifconfig,看是否设置成功;同时在目标机设置IP与主机同一网段,设置完后重启网络,或重启设备。
这样一来,Ubuntu-Windows-开发板间就可以相互ping通了。

二、获得gdbserver及arm-linux-gdb

我使用的是gdb7.9.1,因为海思官方SDK中提供的gdb就是gdb7.9.1,且SDK中已经提供了交叉编译好的gdbserver。只需要交叉编译获得交叉编译的gdb就好了。具体步骤参考实现交叉编译gdb和gdbserver(gdb-7.6),按步骤来就可以获得对应的gdbserver及arm-linux-gdb了。
获得gdbserver后,将其放入开发板的/bin中,并更改权限

chmod 777 gdbserver

三、eclipse建立工程

Linux下的eclipse如何安装百度一大把,我这里使用的是eclipse-cpp-2020-03-R-incubation-linux-gtk-x86_64.tar.gz,下载地址
在这里插入图片描述
新建一个简单的c project,就叫gdbtest吧,用于调试验证。注意选择工具链为交叉编译gcc
在这里插入图片描述

之后选择交叉编译链,我这里是arm-himix200-linux- ,根据你的交叉编译链填写。
在这里插入图片描述
然后写一个最简单的程序用于调试

#include "stdio.h"

int main()
{
	int i ;
	for(i=0;i<10;i++)
	{
		printf("%d\n",i);
	}

	return 0;
}

编译通过后,会在工程目录的Debug目录下生成项目同名的可执行文件,将执行文件扔到开发板,运行没问题后再进行调试配置。
在这里插入图片描述

四、eclipse调试配置

点击Debug Configurations,双击C/C++ Remote Application。新建一个远程调试项,分别按以下步骤进行配置。
在这里插入图片描述
点击Selected other,做如下配置在这里插入图片描述
之后选择Debugger标签页,GDB debugger选择之前编译好的交叉gdb,我这里是arm-himix200-linux-gdb。
在这里插入图片描述
之后点击Connection选项卡,做如下配置。其中IP地址为开发板的地址,端口随意设置。这个IP和端口就是在开发板开启gdbserver的连接凭证。
在这里插入图片描述
配置好后点击Apply使其生效。这样eclipse的调试环境就搭建好了,gdbserver也放到开发板了,接下来就是远程调试实验了。

五、远程调试

在开发板中进入执行文件的目录,即之前用eclipse编译好的gdbtest文件,用gdbserver运行之,这里的IP和端口必须和Eclipse中配置的相符。之后gdbserver开始监听远程调试。

gdbserver 172.21.25.220:1111 gdbtest

在这里插入图片描述
这时在eclipse中的Debug Configurations双击刚刚建立的C/C++ Remote Application进入远程调试,在开发板中随即看到如下信息,说有172.21.25.219连进来了,这个就是我的虚拟机的IP。
在这里插入图片描述
如此一来便打通了eclipse+gdbserver远程调试的通道。在eclipse中可以直观的对程序进行调试,打断点、看变量,一切都很直观,就像单片机开发时的仿真一模一样。
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜老越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值