标签:
原文:http://blog.chinaunix.net/uid-21977330-id-3761022.html
sudo apt-get install texinfo
sudo apt-get install libncurses5-dev
sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison
为了支持python脚本扩展功能
apt-get install python-dev
确定XML support 是否使能,如果libexpat-dev被安装是默认是能的,
如果不支持XML, openocd->gdb memory map transfer 不能够工作
# It‘s actually quite straightforward:
wget http://ftp.gnu.org/gnu/gdb/gdb-7.0.1a.tar.bz2
tar jvxf gdb-7.2.tar.bz2
cd gdb-7.2
./configure --target=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi- --prefix=/home/enzo --with-python
其中:
--target i指明目标系统类型
--prefix 指生成的可执行文件安装在哪个目录
--program-prefix 指生成的可执行文件的前缀
make
幸运的话,会在--prefix指定的目录下生成三个子目录:bin、lib、share,我们需要的arm-none-linux-gnueabi-gdb就在其中的bin目录下。
进入gdb目录,对生成的elf文件进行strip,不然又12M左右
strip gdb -o arm-none-linux-gnueabi-gdb
裁剪后大小
-rwxr-xr-x 1 root root 2.7M 6月 9 21:14 arm-none-linux-gnueabi-gdb
拷贝arm-none-linux-gnueabi-gdb 到目标位置即可
3. 编译gdbserver
cd gdb/gdbservver
CC=arm-hisiv100nptl-linux-gcc ./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux
这里的--host指定了生成可执行文件运行的平台和系统:运行于ARM平台的Linux系统
make
检查生成的gdbserver
$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
4. 去除符号信息
$ arm-hisiv100nptl-linux-strip gdbserver -o gdbserver
enzo@debian:~/Downloads/gdb-7.3.1/gdb/gdbserver$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
可能出现的错误:
xml-builtin.o: could not read symbols: File in wrong format
出现此错误原因: 没有指定交叉编译器
./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux
自己的开发板,
./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi- --prefix=/home/ljl/gdb
make install前先sudo -i,然后设置下环境变量,否则找不到编译器
标签:
原文地址:http://www.cnblogs.com/lijinlei/p/4850432.html