利用Eclipse和Sourcery G++ Lite通过GDBserver在Windows下单步调试嵌入式Linux应用程序

我的开发平台:

上位机:WIN7 32bit Home basic

下位机:AM3517, Linux 2.6.37 


需要用的软件资源:

1.      arm-2012.09-64-arm-none-linux-gnueabi.exe  (sourcery G++ Lite)

2.      jdk-8u5-windows-i586.exe        (Java Jdk)

3.      eclipse-standard-kepler-SR2-win32.zip(Eclipse)

4.      Gdbserver  (下位机)


安装sourcery G++ Lite 交叉编译链for windows的安装包

 

假设安装到C:\ProgramFiles\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux,

注意PATH一定要选择添加到系统PATH里,如下图


安装JDK


打开Eclipse,Help -> Install New Software,,在列表里,ProgrammingLanguage->C/C++ programming tool


软件安装完毕。


导入你以前的下位机程序,Makefile Project with Existing Code


自动导入工程后,工程目录右键属性,Properties(Alt+enter), 在Build里,选择自定义编译指令,cs-make如图。



Build -> Build Project



把生成的可执行文件(我这里是GCC_test),拷贝到下位机板子上。


在下位机linux上,拷贝gdbserver到/bin/     (GDBserver的移植比较容易,这里就略过了,网友可以自行到网上去找)

GCC_test拷贝到/home/

电脑和下位机都要连接以太网,用于GDB远程调试

 

假设PC的IP:192.168.100.111

   Arm:192.168.100.19

在板子上运行

/home # gdbserver 192.168.100.19:2345  GCC_test

Process GCC_test created; pid = 610

Listening on port 2345

 

在Eclipse里,Run->Debug Configurations…

双击C/C++ Remote Application,会自动创建一个工程Debug配置,





点击Debug,就能进入调试界面,程序自动停在Main函数入口处



同时,在下位机,

/home# gdbserver 192.168.100.19:2345 GCC_test

Process GCC_test created; pid = 610

Listening on port 2345

Remote debugging from host 192.168.100.111


接下去就可以单步调试,设置断点,查看寄存器,查看变量,控制程序跳转等,非常方便。


此方法关键在于sourcery G++ lite提供了arm-none-linux-gnueabi-gdb.exe,可以直接在windows下调试远程的GDBserver运行的程序,通过Eclipse的调试接口,可以做到在windows下单步调试嵌入式linux的程序,也可以在windows下交叉编译下位机运行的arm linux程序。实在是非常方便的一种手段。


缺点在于,一些shared library没有调试信息,当你在调用库函数时,没法暂停,解决方法是编译带调试信息的shared library,貌似工作量太大,也无必要,目前的这些手段足够我们调试自己的应用程序了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值