嵌入式Linux的GDB调试环境建立

嵌入式技术

1372人已加入

描述


嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。这样,应用程序在嵌入式目标系统上运行,而gdb调试在Host端,所以要采用远程调试(remote)的方法。

    一、建立安装gdb组件

    从ftp://ftp.gnu.org/gnu/gdb上下载gdb套件,我下载的是gdb-5.2.1.tar.gz。假定在debug下编译gdb套件,你前面已经设定了TARGET,PREFIX参数。其中TARGET是你的目标板,我的是arm-linux,PREFIX是你要安装的目标文件夹。

$tar xv*** gdb-5.2.1.tar.gz 
$mkdir debug/build-gdb 
$cd build-gdb 
$../gdb-5.2.1/configure --target=$TARGET --prefix=$PREFIX 
$make 
$make install 
然后建立gdbserver。 
$mkdir debug/build-gdbserver 
$cd build-gdbserver 
$chmod +x ../gdb-5.2.1/gdb/gdbserver/configure 
$CC=arm-linux-gcc ../gdb-5.2.1/gdb/gdbserver/configure \ 
>--host=$TARGET --prefix=$TARGET 
$make 
$make install

  使用arm-linux-strip命令处理一下gdbserver,然后将之复制到你的根文件系统的/usr/bin下,建立ramdisk盘。

    二、调试步骤

1、交叉编译,带参数-g加入调试信息。

  假设要调试的程序为test.c。

#arm-linux-gcc -g test.c -o test

2、在Target Board开启gdbserver

#gdbserver  :2345 test 
gdbserver开始监听2345端口(你也可以设其他的值),然后启动test,你会看到“Process test created:pid=157”

3、回到Host端

#arm-linux-gdb test

  最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”... 
说明此gdb在X86的Host上运行,但是调试目标是ARM代码。

(gdb)target remote :2345

  注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。

  建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用超级终端查看。



打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分