Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368889
  • 博文数量: 242
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1134
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-20 10:53
文章分类

全部博文(242)

文章存档

2015年(1)

2014年(10)

2013年(18)

2012年(213)

分类:

2012-11-09 17:21:59

原文地址:移植gdbserver到嵌入式系统 作者:txgc_wm

一.前言
       嵌入式Linux系统中,由于嵌入式系统资源有限,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver的方式进行调试。gdbserver在目标系统中运行,gdb则在宿主机上运行。目标系统必须包括gdbserver程序,宿主机也必须安装gdb程序。并且不能直接采用linux发行版自带的gdb,需要交叉编译gdb和gdbserver。

二.编译gdb和gdbserver工具
下载最新版本的gdb-6.4.tar.gz,可以到ftp://ftp.gnu.org/gnu/gdb下载.
准备好自己的工作目录,如下示
/tmp/gdb_mipsel
            |--gdb-6.4
            |--obj-gdb
                    |--build
            |--obj-gdbserver
                    |--build
            |--bin
                    
脚本obj-gdb/build内容如下:
#!/bin/sh

../gdb-6.4/configure --target=mipsel --enable-shared --prefix=/opt/mipselgdb --without-x --disable-gdbtk --disable-tui --without-included-regex --without-included-gettext
make

echo "done"


脚本obj-gdbserver/build内容如下:
#!/bin/sh

CC=/opt/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc
../gdb-6.4/gdb/gdbserver/configure --host=mips-linux --without-included-regex --without-included-gettext

echo "done"


开始编译:
(1) cd obj-gdb
    ./build
(2) cd obj-gdbserver
    ./build
    生成Makefile后,添加LDFLAGS= -static,然后make(编译的时候,可能会提示某些文件不存在,则到相应地方mark掉即可)
    
(3) cd bin
    cp ../obj-gdb/gdb/gdb ./mipsel-gdb
    cp ../obj-gdbserver/gdbserver ./
    /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-strip gdbserver
(4) bin目录下就是最终编译出来的gdb+gdbserver


三.gdbserver使用
(1) 目标机
    进入到cssg在终端文件系统中的存放位置,然后执行命令“gdbserver 192.168.1.100:9000 cssg”(注:cssg在编译的时候要加-g选项)
(2) 宿主机
    将mipsel-gdb存放的路径加入到环境变量PATH中,然后进入编译存放cssg源码目录中执行mipsel-gdb cssg,接着再输入命令“target remote 192.168.1.1:9000”(注:该处的端口号必须跟目标机的端口设置一致)
(3) 说明
    目标机IP:192.168.1.1
    宿主机IP: 192.168.1.100
    端口是随意指定的,但两端须保持一致;
    cssg程序两端也必须相同

阅读(399) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~