交叉编译gdb7.4 for SAMSUNG GT-I9100
来源:互联网 发布:java代码只执行1次 编辑:程序博客网 时间:2024/06/04 19:38
交叉链是我用crosstool_NG做的,非常简单好用,具体实现可以参考我之前写的文章。
下载源码后得到gdb-7.4目录,自己再新建一个build_gdb-7.4目录:
drwxr-xr-x 12 qj rebi 4096 2012-12-18 20:22 build_gdb-7.4/
drwxr-xr-x 15 qj rebi 4096 2012-12-18 19:52 gdb-7.4/
进入build_gdb-7.4目录执行configure:
../gdb-7.4/configure --prefix=/home/qj/tools/build_gdb-7.4/install --host=arm-linux CC=arm-unknown-linux-gnueabi-gcc LD=arm-unknown-linux-gnueabi-ld AR=arm-unknown-linux-gnueabi-ar LDFLAGS=Wl,-dynamic-linker=/data/app/ld-linux.so.3
之后make
make install
会在build_gdb-7.4目录下生成install目录,把gdb拷走就行了。
可以看到,gdb依赖于如下这几个动态库,所以需要从交叉链的目录下搜索到这几个库也一同上传到手机上。当然,ld-linux.so.3也是必须的。
qj@king:~/x-tools$ readelf -a gdb | grep library
0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
通过下面的命令可以确认一下,我们指定的linker是否正确:
qj@king:~/x-tools$ readelf -l gdb
Elf file type is EXEC (Executable file)
Entry point 0xb66c
There are 10 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
EXIDX 0x3618d8 0x003698d8 0x003698d8 0x008f8 0x008f8 R 0x4
PHDR 0x000034 0x00008034 0x00008034 0x00140 0x00140 R E 0x4
INTERP 0x000174 0x00008174 0x00008174 0x00018 0x00018 R 0x1
[Requesting program interpreter: /data/app/ld-linux.so.3]
LOAD 0x000000 0x00008000 0x00008000 0x3621d4 0x3621d4 R E 0x8000
LOAD 0x362ef4 0x00372ef4 0x00372ef4 0x091a8 0x23c9c RW 0x8000
DYNAMIC 0x362f00 0x00372f00 0x00372f00 0x00100 0x00100 RW 0x4
NOTE 0x00018c 0x0000818c 0x0000818c 0x00020 0x00020 R 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
GNU_RELRO 0x362ef4 0x00372ef4 0x00372ef4 0x0010c 0x0010c R 0x1
LOOS+5041580 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4
Section to Segment mapping:
Segment Sections...
00 .ARM.exidx
01
02 .interp
03 .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .ARM.extab .ARM.exidx .eh_frame
04 .init_array .fini_array .jcr .dynamic .got .data .bss
05 .dynamic
06 .note.ABI-tag
07
08 .init_array .fini_array .jcr .dynamic
09
qj@king:~/x-tools$
PS:后来经过测试,用同样的方法gdb7.5也顺利移植到我的I9100上去了。我估计对其它Android平台来说应该是一样的通用。
- 交叉编译gdb7.4 for SAMSUNG GT-I9100
- 交叉编译GDB7.6
- 交叉编译开源软件的固定套路,以编译最新的gdb7.5 for arm为例
- Arm-linux-tools4.3.2 + Ubuntu10.04 交叉编译gdb7.2
- samsung i9100 手机共享电脑网络
- samsung GT 7510 host 失败
- samsung GT 7510 slave error
- gdb7.4安装
- 交叉编译gstreamer for arm
- 交叉编译gstreamer for arm
- 交叉编译Ruby for ARM
- 交叉编译minicom for ARM
- 交叉编译e2fsprogs For android
- 交叉编译GCC for arm
- 编译android strace ltrace gdb7.11
- Samsung GT-P5100刷andorid 4.3
- 交叉编译apache服务器for ARM Linux
- 交叉编译apache服务器for ARM Linux
- Unbuntu中安装JDK
- iOS中后台运行
- linux lcd 驱动
- 解析C++中get()和getline()的区别(一)
- boost库中的split函数
- 交叉编译gdb7.4 for SAMSUNG GT-I9100
- STL
- 一年成为Emacs高手(像神一样使用编辑器) .--http://blog.csdn.net/redguardtoo/article/details/7222501
- 转:C#继承之base,virtual,override,abstract,new,sealed关键字
- DIV+CSS中让布局居中_背景图片居中_文字内容居中
- x264函数说明
- 解析C++中get()和getline()的区别(二)
- Oracle学习笔记1
- Android学习之AlertDialog