`

使用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(C/C++ Development Tooling)和GDB(GNU Debugger)进行原生代码调试的技术。Android NDK允许开发者在Android应用中使用C或C++编写...

    gdb动态调试android可执行程序1

    建议使用最新版本的Android NDK来开发和调试Android应用程序。 14. Android-ndk-r22:Android-ndk-r22是一个最新版本的Android NDK,提供了许多新的特性和改进,例如,支持clang编译器、改进的调试工具等。 15. ...

    android下的gdb调试

    总结来说,"android下的gdb调试"涵盖的是使用GDB在Android环境中进行源码级调试的技术,而"工具"则强调了像`strace`这样的辅助工具在问题排查和性能优化中的作用。熟悉并掌握这些工具的使用,将极大地提高Android...

    android ndk开发实例代码

    5. **调试技巧**:对于NDK开发,可以使用NDK提供的`ndk-gdb`工具进行调试,也可以在Android Studio中配置C++的调试器。此外,`__android_log_print()`宏可用于在Android日志系统中打印调试信息。 6. **性能优化**:...

    Android NDK开发轻松入门.pdf

    **Android NDK**(Native Development Kit)是 Android SDK 的一个重要组成部分,它为开发者提供了使用 C 或 C++ 编写应用程序的功能,使开发者能够利用高性能的本地代码来优化应用性能。 - **目标**:通过 NDK,...

    Android NDK翻译之 NDK-GDB.html

    Android NDK-GDB是针对使用C/C++编程语言在Android平台上开发应用的开发者所必备的调试工具。从NDK r4版本开始,NDK引入了NDK-GDB,使得开发者能够方便地对本地代码进行调试。本文将详细介绍NDK-GDB的使用方法及其...

    Android NDK开发流程

    在Cygwin中,可以使用`ndk-gdb`启动GDB调试器。 - 也可以使用Eclipse ADT或Android Studio自带的调试工具进行跨语言调试。 2. **性能优化**: - 通过使用C/C++编写关键性能部分,可以显著提升应用性能。 - 使用...

    《Android NDK 开发教程 - v1.0》PDF

    6. **调试技巧**:使用NDK的gdb进行原生代码调试,或者结合Android Studio的NDK调试功能。 7. **NDK库的分发和更新**:理解AAR格式,如何将本地库打包并发布到Maven仓库,以及在Gradle中管理库版本。 8. **安全...

    Android NDK开发示例

    在Android Studio中,可以使用GDB进行本地代码的调试。在AndroidManifest.xml中开启调试标志,然后通过DDMS或Android Studio的附加配置来启动调试会话。理解如何设置断点、查看变量和调用堆栈是本地调试的关键。 **...

    android-ndk(android-ndk-r23b-windows.zip)

    NDK是Android应用开发中的一个重要组成部分,它允许开发者使用原生代码(如C、C++)来编写部分应用程序,从而利用底层的硬件性能,提高程序运行效率,尤其是在处理图形计算、物理模拟和游戏引擎等高性能需求的场景下...

    android-ndk(android-ndk-r25b-linux.zip)

    - 开发和调试复杂:相比于纯Java开发,使用NDK会增加调试难度。 - 兼容性问题:需要针对不同架构生成不同的原生库,增加维护成本。 - 动态库支持有限:在某些Android版本或设备上,动态库加载可能存在问题。 6. ...

    Android_NDK_android端_图片处理_android_NDK_ndk开发_

    对于NDK代码的调试,可以使用NDK提供的gdb工具,或者Android Studio集成的NDK调试功能。测试原生代码的性能,可以使用Android Profiler工具,监控CPU、内存和GPU的使用情况。 9. **安全与兼容性** 使用NDK开发时...

    Android NDK基础开发

    - 可以使用NDK自带的gdb或者Android Studio的NDK集成调试工具进行本地代码的调试。 - 调试时需注意符号表的生成和加载,以及远程调试的配置。 10. **最佳实践**: - 尽量减少Java-本地交互,因为每次JNI调用都有...

    android NDK 开发入门

    Android NDK是Android Native Development Kit的缩写,它是一组工具,允许开发者使用C和C++等原生语言编写部分应用程序,以实现高性能计算或利用硬件特性。在Android应用开发中,NDK主要应用于需要高性能计算的游戏...

    android-ndk-r8dab.zip_NDK_android_android ndk

    Android NDK(Native Development Kit)是Google为Android平台提供的一款用于开发原生代码的应用工具,它允许开发者使用C和C++编写部分应用代码,以利用设备的硬件性能或实现更底层的操作。在“android-ndk-r8dab....

Global site tag (gtag.js) - Google Analytics