环境QQ2440配套的环境
由于之前习惯了用gdb调试coredump,所以,打算自己编一个QQ2440上的gdb文件
很早以前用的是gdbserver,后来发现,有的时候没有网络环境的时候,还真就得有一个gdb,所以,编译了一个静态的gdb
[root@T-bagwellgdb]# ll gdb-rwxr-xr-x 1 root root 11937427 2009-09-14 07:23 gdb[root@T-bagwell gdb]# file gdbgdb: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not stripped[root@T-bagwell gdb]# |
---|
编译完以后,生成的文件就是这样的
具体过程如下:
编译的时候遇到了需要找到termcap,我先交叉编译了termcap,然后暂时先存着
然后把gdb里的configure改了一下,我做成了patch,在附件中能看到
文件: gdb-6.8-patch-for-QQ2440.patch.gz 大小: 0KB 下载: 下载 | 文件: | gdb-6.8-patch-for-QQ2440.patch.gz | 大小: | 0KB | 下载: | 下载 | |
---|---|---|---|---|---|---|---|
文件: | gdb-6.8-patch-for-QQ2440.patch.gz | ||||||
大小: | 0KB | ||||||
下载: | 下载 |
大了patch以后不行的,还要找到之前编译的termcap的lib,因为在最后链接生成gdb的时候需要用到libtermcap.a文件,我交叉编译的时候,直接将其生成在对应的目录下了
在configure配置gdb环境时
../gdb-6.8/configure --target=arm-linux --host=arm-linux --enable-static |
---|
链接的时候我使用了命令
arm-linux-gcc -g -O2 -static -o gdb gdb.o libgdb.a ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -lm ../libiberty/libiberty.a -ldl /usr/local/arm/4.3.2/lib/libtermcap.a |
---|
搞定,该gdb可以使用了
可以生成core文件,然后调试了