上次写了几个native程序,想着如何调试,经过一阵子搜索和测试,终于完成了。有几个关键点:

1 gdb和gdbserver 因为这两个需要配套,建议使用同一个ndk下面的gdb和gdbserver
gdbserver的是在 android-ndk-r9\prebuilt\android-arm\gdbserver 这个目录下 gdb 是在 android-ndk-r9\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin 目录下,名称是arm-linux-androideabi-gdb.exe 2 然后把gdbserver安装到设备的 /system/bin下 adb push gdbserver /system/bin/ adb shell chmod u+x /system/bin/gdbserver 3 以DEBUG方式编译程序 具体来说,就是 ndk-build NDK_DEBUG=1 可以调试的程序在 ..\obj\local\armeabi目录下,相对于jni目录 4 启动程序 adb push hello /data/local/tmp/ adb shell chmod u+x /data/local/tmp/hello gdbserver :8123 /data/local/tmp/hello 5 启动GDB开始调试 adb forward tcp:1234 tcp:8123 设置adb的转发 arm-linux-androideabi-gdb (gdb) file ../obj/local/armeabi/sum 加载调试程序 (gdb) target remote :1234 说明远程调试对象 (gdb)list 显示代码 (gdb) break main 设置断点 (gdb) cont 继续运行 6 总结 因为gdb本来就支持远程调试,在启动gdbserver的时候,指定本地调试端口,但是由于设备是通过adb来连接的,所以指定adb来做转接,在设备启动调试后,就等待gdb来连接调试,所以gdb启动后,指定本地的端口,加载代码,然后就可以调试了

更多相关文章

  1. AIR Android应用开发实战
  2. Android(第一季重制版)
  3. android使用ffmpeg的实例程序
  4. [置顶] android wifi调试总结 theros AR6K命令小结 android wifi
  5. 【转】Eclipse 开发Android小程序遇到的问题总结
  6. Android(安卓)Flurry使用说明
  7. Android(安卓)2.2 API Demos -- 通过调用子Activity返回值
  8. android 起动APP时锁住(Lock apps)
  9. Android(安卓)Activity启动过程

随机推荐

  1. 【android】shape的使用
  2. Android性能检测--traceview工具各个参数
  3. android 右上角菜单无法显示
  4. a64_7.1android平板关于更改绘制矩形界面
  5. Android 中的 Service 全面总结
  6. android中去掉空格--trim函数
  7. Android避免启动时闪一下黑屏
  8. android:屏幕自适应
  9. Android 示例之 notepad
  10. Android中获得SD卡中的值