一.前言
嵌入式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程序两端也必须相同
阅读(392) | 评论(0) | 转发(0) |