前面转载了一篇如何编译android gdbserver的博文
原文地址如下:
http://sunzeduo.blog.51cto.com/2758509/1381519
本身这篇文章没有什么问题,按部就班的操作可以生成gdbserver,但是存在的问题如下:
1,本文编写时间比较早,实用的手臂交叉编译版本以及gdb版本都比较老了,手臂交叉编译版本是arm-eabi-4.4.3, gdb使用的版本是7.1。x。
2从文章来看是使用下载后android源码中的ndk来编译的,这个可以通过其修改了MYDROID美元/ndk/构建/工具/prebuilt-common。sh这个脚本可以看出来,对于没有下载安卓源码的童鞋造成障碍。
3,文中的
git克隆git://android.git.kernel.org/toolchain/gdb.git git克隆git://android.git.kernel.org/toolchain/build.git
这两个地址早已经无法下载了,又对想自己动手编译android gdbserver的童鞋造成障碍。
4在中文搜索引擎里面搜索,android gdb调试等,绝大多数均出自,,,
Android -如何重建gdbserver,这篇文章的翻译,同样会存在上面的三个问题。
基于以上的问题,笔者自己动手重新简化思路,编译了Android gdbserver,降低编译门槛,供更多的童鞋来了解这方面的知识。
一,需要的前置条件
1下载Android NDK 直接从http://developer.android.com/tools/sdk/ndk/index.html 这个地址下载即可,下载下来就是一个压缩包,方便使用。 2下载gdb源码 https://github.com/crystax/android-toolchain-gdb 这个下载地址即可
二添加了两个脚本(脚本可以从附件下载)
,,添加目录你下载解压缩的目录下的构建/工具,这个目录下
build-gdbserver_7.3.x.sh prebuilt-common_7.3.x。sh
三对应规则
root@ubuntu: ~/android/android-ndk-r9c/工具链/arm - linux - androideabi - 4.6/预构建/linux-x86_64/bin/arm-linux-androideabi-gdb # GNU gdb 7.3.1-gg2 (gdb) root@ubuntu: ~/android/android-ndk-r9c/工具链/arm - linux - androideabi - 4.8/预构建/linux-x86_64/bin/arm-linux-androideabi-gdb # GNU gdb 7.3.1-gg2 (gdb) arm - linux - androideabi - 4.6 GNU gdb 7.3.1-gg2 (gdb) arm - linux - androideabi - 4.8 GNU gdb (gdb) 7.3.1-gg2
四编译命令
/根/android/android-ndk-r9c/构建/工具/build-gdbserver_7.3.x.sh/磁盘/CyanogenMod/androidgdb/gdb_build//root/android/android-ndk-r9c/arm - linux - androideabi - 4.6 ——详细 ——建设=/磁盘/CyanogenMod/androidgdb/gdb_build/安装 ——gdb-version=7.3.x ——sysroot=/根/android/android-ndk-r9c/平台/android-19/arch-arm
命令解释
, 1 <代码类=癮s3平原”>/root/android/android-ndk-r9c/构建/工具/build-gdbserver_7。代码> <代码类=癮s3价值”> 3 代码> <代码类=癮s3平原”>方式。sh 代码>
<代码类=癮s3平原”>,复制过去的脚本代码>
<代码类=癮s3平原”> 2 <代码类=癮s3平原”>/磁盘/CyanogenMod/androidgdb gdb_build/> 代码下载的gdb的路径代码>
<代码类=" as3平原"> 代码>
<代码类=癮s3平原”> 代码>
<代码类=癮s3平原”> 3/root/android/android-ndk-r9c/,
代码>
<代码类=癮s3平原”>,下载的ndk解压缩的路径代码>
<代码类=" as3平原"> 代码>
<代码类=癮s3平原”> 4 arm - linux - androideabi - 4.6使用ndk中带的arm-linux交叉编译工具,详见ndk根目录下的工具链目录代码>
<代码类=" as3平原"> 代码>
<代码类=癮s3平原”> 5,冗长,
代码>
<代码类=" as3平原"> 代码>
<代码类=癮s3平原”> 6——建设=/磁盘/CyanogenMod/androidgdb/gdb_build/安装代码>
<代码>,gdbserver生成的目录,如果编译成功了,则在这个目录下生成gdbserver 代码>
<代码> 7> 代码——gdb-version=7.3。x
,,要编译的gdb版本,对应你下载的gdb源码包,参考上面的图
8——sysroot=/根/android/android-ndk-r9c/平台/android-19/arch-arm
,,在编译gdbserver的时候需要用的头文件和库文件
五编译错误修改
笔者在编译gdb 7.3.x的时候出现了编译错误,主要是关于精灵头文件的问题。