一、前期准备


1、编译通过的Android源代码(我是Android 2.3)


2、安装了CDT的Eclipse


3、重新编译Android gdbserver(非必须)

因手头Android 2.3源码编译后的版本执行gdbserver时报错:Segmentation fault,不得不重新编译gdbserver。参考博文:自己编译Android gdbserver(解决运行 gdbserver时 Segmentation fault 问题)。



二、建立Eclipse C/C++工程

这里的C/C++工程属性可随意选择,目的是为了用Eclipse编辑和调试,不需要Eclipse做编译工作。建立好工程后可以将部分Android C/C++源码链接到工程中,方便查看。


三、编译并安装将被调试的程序


1、撰写Android.mk,Andriod源码下编译获得可执行文件或动态库
这是基本工作,无须多言

2、使用带调试符号表的C/C++程序替换原有程序
simba@simba-Vostro-3400:~/neptune/android_2.3$ adb push out/target/product/xxxx/symbols/system/bin/debug_demo /system/bin

3、在Eclipse Debug Configurations中新建C/C++ Remote Application
在Main标签页中设置:
C/C++ Application:
/home/simba/neptune/android_2.3/out/target/product/xxxx/symbols/system/bin/debug_demo
Project:
(将要调试的代码对应工程)
Connection:
local
Remote Absolute File Path :
/system/bin/debug_demo
Commands to execute before application:
/opt/android/sdks/r15/platform-tools/adb shell gdbserver :5039 /system/bin/debug_demo
/opt/android/sdks/r15/platform-tools/adb forward tcp:5039 tcp:5039
注意,这里的adb路径一定要完整路径选中 “Skip download to target path”

在Debugger标签页中设置:
GDB debugger(与gdbserver对应的gdb的路径):
/home/simba/neptune/android_2.3/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gdb

GDB command file:

暂时置空

Gdbserver Settings:
Gdbserver name:gdbserver

Portnumber:5039


4、开始愉悦地调试吧


--

参考文章:

用Eclipse开发与调试纯粹的Android C++程序,非ndk-build、ndk-gdb



更多相关文章

  1. Android动态调试--jeb调试apk
  2. 编译安卓源码以及下载Android内核
  3. Android.mk超全详细用法
  4. 在Windows7上用Android(安卓)Studio编译Tensorflow_Android_Demo
  5. Android(安卓)Package Name vs. Application ID
  6. Android(安卓)模拟器运行编译后的源码
  7. android编译源码+在源码中build工程方法(紧支持jdk1.5)
  8. 编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)
  9. Android(安卓)华为U8818真机调试 无法打印Logcat

随机推荐

  1. Android网络连接判断与处理
  2. Android两种播放视频的方法(SurfaceView
  3. android adb常用命令整理
  4. Android(安卓)获得本机ip地址和MAC地址
  5. 使用Xutils的时候rg.apache.http.client.
  6. Android(安卓)ListView设置Item选中状态
  7. 《宅男的android开发指南》(翻译)--9
  8. Android点击左右按钮实现左右滑动页面切
  9. Android(安卓)activity的生命周期
  10. Android包冲突等问题