`

使用GDB调试Android NDK开发的程序

 
阅读更多

 对于使用NDK编译出来的工具除了so库文件外,会会有gdbserver和gdb.setup文件,方法为

  1. 在PC的命令提示符下进入ndk根目录,执行ndk-build NDK_DEBUG=1 这样,将会强制生成debug调试版的文件,将设我们NDK工程名为 cwj-test ,这里要说明的是编译出来的库文件在libs目录下是没有符号的,我们要obj下的文件,否则symbol无法正确加载。

  2. 我们将生成的gdbserver和so库文件复制到/data目录下面,使用adb push命令,或者直接使用Eclipse中DDMS的File Explorer手动复制,不过对于真机可能没有这个列举目录的权限,你可以使用Android模拟器。

  3. 进入Android手机或模拟器的命令行,我们使用adb shell命令,接下来进入刚才的文件夹,比如说adb shell /data/gdbserver 10.0.0.2:1987 ./cwj-test  这句你的手机ip假设为10.0.0.2端口号为1987,工程名为cwj-test 如果没有问题的话,会看到Listening on port 1987 这代表正在监听。

  4. 接下来在新开一个PC命令行,这里Android123使用的是NDKr6,在 android-ndk-r6\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-gdb.exe ./cwj-test 执行

  5. (gdb) target remote 10.0.0.2:1234 调试了,这里的ip和端口要和上面的对应,当然本机的ip你可以使用localhost代替。

分享到:
评论

相关推荐

    Eclipse+CDT+GDB调试android NDK程序

    Eclipse+CDT+GDB调试android NDK程序

    Eclipse+CDT+GDB调试android_NDK程序

    Eclipse+CDT+GDB调试android_NDK程序

    Android NDK翻译之 NDK-GDB.html

    GDB是Android NDK进行C代码调试的工具,这个文件是NDK帮助文档的中文翻译版本

    gdb for android

    android 设备的gdb调试工具,gdb版本7.11 ,使用android_ndk_r9c工具编译。使用时,adb push 工具到实际使用的目录采用, adb shell的方式进入android设备,然后 ./gdb 运行使用,开发这个的主要原因是为了解决内核...

    Android C++高级编程: 使用NDK

    《移动开发经典丛书·Android C++高级编程:使用NDK》中我们将学习如何用AndroidNDK通过原生代码语言去实现自己的Android应用中对性能要求较高的部分。  《移动开发经典丛书·Android C++高级编程:使用NDK》介绍了...

    《Android C++高级编程——使用NDK》_源码.zip

    使用POSIX线程实现多线程应用● 使用POSIX套接字实现网络应用● 使用logging、GDB和Eclipse调试器进行调试● 使用Valgrind分析内存● 使用GProf 测试应用性能● 使用NEON/SIMD优化代码● 使用Eclipse IDE开发原生...

    Gdb+gdbserver无源码调试Android 动态链接库的技巧

    本文详细描述欺骗ndk-gdb之后,如何使用gdb的各种常用命令去调试Android的动态链接库。包括如何反汇编,如何单步,等

    Android C++高级编程使用NDK

    《移动开发经典丛书·Android C++高级编程:使用NDK》中我们将学习如何用AndroidNDK通过原生代码语言去实现自己的Android应用中对性能要求较高的部分。  《移动开发经典丛书·Android C++高级编程:使用NDK》介绍了...

    pro-android-c-w-ndk-master.tar

    《移动开发经典丛书·Android C++高级编程:使用NDK》中我们将学习如何用AndroidNDK通过原生代码语言去实现自己的Android应用中对性能要求较高的部分。  《移动开发经典丛书·Android C++高级编程:使用NDK》介绍了...

    VisualGDB-5.2r6破解版

    最新版本VisualGDB 5.X和VisualKernel 2.X破解补丁,理论上可支持后续新版本的...同时它还能支持Android程序的编译和调试,开发NDK直接都在VS里就搞定了。 VisualKernel则彪悍的支持Linux内核的开发调试,双剑合璧。

    gdb+gdbserver教程

    Android 使用NDK自带的gdb+gdbserver进行so的动态调试

    visualgdb 5.1r5 正式版 破解

    visualgdb新版本对android的开发调试支持越来越好。我相信很多用户会对这个的需求越来越深入。喝水不忘挖井人,感谢VISUALGDB这个产品的开发者。更感谢fallrain 对此做的贡献。 Fixes in R5: Added a workaround for...

    gdb-7.7-android:GDB 7.7 为 ARM Linux Android EABI 构建

    用于 Android 调试的 GDB 7.7 我为解决构建的 gdb-7.7 的 Win32 二进制文件。 与 Google 的构建不同,我的构建缺少 Python 支持,但具有 libiconv(即设置主机字符集、目标字符集和目标宽字符集)支持。 安装: 将...

    使用eclipse单步调试jni代码 (方法2)

    本文档是自己一边实际操作一边记录完成,每一关键步骤都有截图与详细...方法2的缺点是首次配置复杂,优点是不必每次调试都重新在目标机安装app,并可以在目标程序运行过程中随时开始调试。文档完成时间是2014年10月。

    EbookConverter:MOBIAZWPRC和FB2电子书格式转换器到EPUB。 使用开源库libmobi和fb2-to-epub-converter

    EbookConv.sln和.vcxproj是Visual Studio 2015解决方案和项目,我借助VisualGDB工具来开发和调试本机Android代码,但也可以通过运行Android ndk-独立构建本机.so库。在jni目录中生成命令。 MobiTest和Fb2Test是...

    使用eclipse单步调试jni代码(方法1)

    本文档是自己一边实际操作一边记录完成,每一关键步骤都有截图与详细说明,本是自己的记录也是拿出来与大家...方法1的特点是配置简单,缺点是每次调试都要重新在目标机安装app,并重新调试。文档完成时间是2014年10月。

Global site tag (gtag.js) - Google Analytics