[1].终端目录设置到: proj.android
[2].make文件的编译选项加上: -g -gstabs+
[3].执行编译脚本: sh ./build_native.sh NDK_DEBUG=1
[4].将生产的gdbserver push到手机上,找个能写的目录: adb push ./libs/armeabi/gdbserver data/data/tmp
[5].启动app
[6].终端: adb shell
[7].终端: su
[8].终端: cd data/data/tmp (到存放gdbserver的目录)
[9].获得app进程号: ps com.fun.funm
[10].终端: ./gdbserver :1080[端口] —attach 6280[进程号]
[11].切换到proj.android终端
[12].终端: adb forward tcp:1080 tcp:1080
[13].启动: ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gdb
[14].终端: target remote: 1080
[15].打开 ./lib/armeabi/gdb.setup, 将里面的两个命令贴入终端执行
 
1.配置环境变量,.bash_profile文件
## andorid
export ANDROID_HOME=/Volumes/work/program
export ANDROID_SDK=${ANDROID_HOME}/adt-bundle-mac-x86_64-20140702/sdk
export ANDROID_NDK=${ANDROID_HOME}/android-ndk-r10
export NDK=${ANDROID_NDK}
export PATH=${PATH}:${ANDROID_SDK}/tools
export PATH=${PATH}:${ANDROID_SDK}/platform-tools
export PATH=${PATH}:${ANDROID_NDK}/platforms
export PATH=${PATH}:${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin ## ant
export ANT_HOME=${ANDROID_HOME}/apache-ant-1.9.6
export PATH=${PATH}:${ANT_HOME}/bin ## python path
export PYTHONHOME=/usr/lib/python2.7
export PYTHONPATH=.:$PYTHONHOME:$PYTHONHOME/site-packages
export PATH=${PATH}:$PYTHONHOME:$PYTHONPATH ## custom path
export WORKSPACE=/Volumes/work/projecj
export FUNM_PROJ_ROOT=/Volumes/work/project/v3.1.0.1-20160222/funm/proj.android

2.android版本设置,local.properties, project.properties, ant.properties

设置完执行创建ant编译需要的文件build.xml:

android update project -t android-20 -p .

3.mk文件配置:

Application.mk文件
NDK_TOOLCHAIN_VERSION := 4.8
APP_ABI := armeabi
Android.mk文件
优选选项 -o0

4.native代码文件编译

## build debug
$NDK_ROOT/ndk-build NDK_DEBUG=1

5.ant 项目目录下打包apk:

ant debug;ant release;

6.adb 安装apk:

adb install Funm-debug.apk

7.启动apk,开启gdb调试

## gdb attach
$NDK_ROOT/ndk-gdb

然后就可以开始设置断点调试了

继续:c(continue)
设置断点:break test.cpp:100
查看断点:info breakpoints
删除断点:clear / clear test.cpp:100 / delete 1 2 3 
 
需要工具:
ndk编译及调试:android-ndk-r10
ant打包:apache-ant-1.9.6(适合有专门编译机时使用此方式打包)
eclipse打包:adt-bundle-mac-x86_64-20140702(集成版,本地调试用eclipse即可)
gdb调试不用每次重新打包,只要打包出apk,启动后设置断点即可。

Android gdb 调试的更多相关文章

  1. Eclipse+CDT+GDB调试android NDK程序(转)

    Eclipse+CDT+gdb调试android ndk程序 先介绍一下开发环境,在这个环境下,up主保证是没有问题的. ubuntu 11.10 eclipse 3.7(indego) for ja ...

  2. 使用GDB调试Android NDK native(C/C++)程序

    使用GDB调试Android NDK native(C/C++)程序 先说明下,这里所谓的ndk native程序跟Android上层java应用没有什么关系,也不需要涉及jni来封装native接口 ...

  3. 使用GDB调试Android NDK native(C/C++)程序-转

    最 近写了些需要跨平台兼容的C++库,Android是其中需要兼容的平台之一.区别于Windows,Mac中功能强大的IDE环境,官方并没有为 Android ndk提供太多的支持.因此,尝试了下通过 ...

  4. 使用GDB调试Android Native 层代码

    --------------步骤:0. adb root0. adb shell0. ps | grep browser1. gdbserver :5039 --attach pid2. adb fo ...

  5. 使用WIFI连接android进行调试和adb操作

    本人需要wifi连接android进行调试的原因主要是要经常用到IDA pro进行调试,但手头有的IDA Pro版本只是windows的,开发可能更多用Mac OS X了,来回拔插.调试很不方便,所以 ...

  6. GDB调试:Linux开发人员必备技能

    开篇词:Linux C/C++ 开发人员要熟练掌握 GDB 调试 大家好,我是范蠡,目前在某知名互联网旅游公司基础框架业务部技术专家组任开发经理一职. 本系列课程的主题是 Linux 后台开发的 C/ ...

  7. GDB调试命令小结

    1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...

  8. GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 分析过程 这是我的C源文件:click here 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb ...

  9. gdb调试器的使用

    想要使用gdb调试程序的话,首先需要gcc -g main.c -o test 然后运行gdb test对程序进行调试 l (小写的l,是list的首字母),用以列出程序 回车    是运行上一个命令 ...

随机推荐

  1. .NET正则表达式匹配Silverlight

    这是一个.NET正则表达式匹配工具的Silverlight 在页面中加入以下代码就可以了: <"> <param name="source" value ...

  2. 【高级功能】使用Web存储

    Web存储允许我们在浏览器里保存简单的键/值数据.Web存储和cookie很相似,但它有着更好的实现方式,能保存的数据量也很大.这两种类型共享相同的机制,但是被保存数据的可见性和寿命存在区别. PS: ...

  3. AdaBoost

    一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单"听取多人意见,最后综合决策",但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学 ...

  4. VS 2015打开项目闪退,新建项目提示未将对象引用到实例

    因为开发需要,要把开发工具换成visual studio2015,装完之后会有警告“js”安装的问题,打开VS也没有问题, 但是一打开项目就闪退,新建项目也不行,查看应用程序日志,报错提示如下: .N ...

  5. javascript的浅拷贝和深拷贝

    1.浅拷贝:复制一份引用,所有引用对象都指向一份数据,并且都可以修改这份数据. 2.深拷贝(复杂):复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制. 这里画一个简单的图来加深理解: ...

  6. Visual Studio将Delop之后生成的dll或者wsp复制到指定目录

    用VS开发sharepoint项目的时候,有很多个project,每个project都会生成一个wsp包,如果手工把wsp文件找到,复制出来,拷贝到服务器上,再部署,就有点麻烦. 所以写了个批处理命令 ...

  7. [转]MOSS通过此命令注册模板,web应用程序可以根据stp模块生成网站集

    注:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin          stsadm –o add ...

  8. -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法

    -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法: 错误:NSMutableD ...

  9. Jquery全选单选功能

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm6.aspx. ...

  10. OC中的面向对象语法4

    一. 继承 1. 继承的基本用法 l 设计两个类Bird.Dog // Bird的声明 @interface Bird : NSObject { @public int weight; } - (vo ...