使用GDB调试JNI代码

本文档介绍了如何使用GDB调试Android JNI代码,包括NDK文档的关键点、调试前提条件、ndk-gdb参数说明以及调试步骤。通过GDB,开发者可以更方便地进行C/C++代码的调试,而不再依赖于打印log。虽然Android 2.3及更高版本才能调试多线程,但此方法对于主线程调试非常有效。
摘要由CSDN通过智能技术生成

调试JNI的c/c++代码,我一直使用打印log的方式,费时费力。在网上搜索使用GDB调试JNI的文章也不多。后来在stackoverflow偶然看到ndk-gdb才知道自己把NDK的重要文档忽略了。于是赶快试验,没想到确实不难。现把使用方法记录下来。

NDK文档我总结了一下,有几方面需要了解:

● 使用方式
cd $PROJECT
$NDK/ndk-gdb

● 前提条件
- 必须使用 ndk-build 编译native代码;使用 make APP=<name> 是不行的
- AndroidManifest.xml 的 android:debuggable
- 使用Android 2.2+的设备或模拟器
- 使用Eclipse的话,ADT 0.9.7+
- 使用ant的话,Android 2.1 r2+ / 2.2 r1+

● ndk-gdb参数
--verbose        显示详细的会话启动信息。当不能启动GDB时,打开它可以得到更多帮助。
--force            如果存在了一个调试会话,先终止它,然后再启动自己。
--start            启动程序默认的activity,然后连接。默认是寻找系统中已经运行的程序。
--launch=<name>    指定要启动的activity,其它的和上面一样。
--launch-list    打印出可启动的所有activity。
--project=<path>    如果未进入项目目录而运行 ndk-gdb,必须使用该参数指明路径。
--port=<port>        默认使用TCP端口5039和程序通信。指

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值