NDK-GDB的使用

 NDK开发包中有ndk-gdb可以用来调试ndk开发的库,文档要求必须是ndk-build

创建的库才可以用来ndk-gdb。

简单摸索了一下ndk-gdb的使用方法,以供参考:

1. 使用ndk-build创建出库文件,并上传至开发板。

2. 用eclipse创建一个调用该库的android工程。

注意: 库文件中必须包含jni 定义的C文件,并且必须严格按照jni规则,与java

           文件中的包,类,方法名一致。

3. 用eclipse在device上跑起来,(不管成功失败,至少与库链接通过)。

4. ndk目录的下一级目录,如sample/xxx ,找到bin目录,在bin目录中执行ndk-gdb --start。

5. 如果提示需要adb支持,将adb工具的目录设置到PATH。

6. 如果start以后,一闪而过,表示程序已经结束,没合适的时机加断点,需要在java代码中

    加入android.os.Debug.waitForDebugger();表示在java代码中暂停,等待debug。也可以在

   eclipse中的java代码上打断点,再start ndk-gdb 。

7. 重新ndk-gdb --start应该会出现

========================================================

warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
0xafd0eb58 in __futex_syscall3 ()
   from /home/louyong/android-ndk-r5c/dvb/jb_his/obj/local/armeabi/libc.so
(gdb)

=======================================================

就可以打断点和调试。O(∩_∩)O~

注意:如果在eclipse在windows上,而ndk开发包在linux上。最好不要同时connect设备,貌似会有问题。

         貌似这个gdb还不太稳定,有时候需要等待较长时间才有反应,有时候也会出很奇怪的问题,比如不能next,多试几次吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值