android 通过gdbserver 调试c++

有些事真的很烦锁,但是又不得不做

环境:ubuntu12.04

            ndkr9

            android sdk

            android 4.2.2 盒子,已root


过程:

       1、c++ 编写程序

       2、ndk-build  NDK_DEBUG=1 //强制生成调试信息

       3、adb push gdbserver /system/bin   //把 生成的libs下armeabi下的 gdbserver 放到android盒子里,放到system/bin 下,可以直接启动

       4、adb push  程序 /data/bin 下,这里一定要注意,程序不是libs下的 而是obj下的 obj/local/armeabi/ 下的程序,原因就是:默认情况下,android的编译系统在编译程序时已经使用了“-g”选项,即已经生成了调试信息。但是在生成最终的文件时,是经过strip的,去除了所有到调试信息。所以最终我们到调试目标要使用strip之前的文件。

      5、调试步骤

            a、启动终端 进入android,命令:

                  adb shell

            b、在android终端启动调试, 命令:

                  cd /data/bin    //程序放在了这里

                  gdbserver  :1234 程序   //gdbserver 启动监听端口号,用于和pc机通信 调试

           c、在启动终端,启动gdb, 命令:

                arm-linux-androideabi-gdb   //这个玩意在ndk  toolchin 里,能找到吧

           d、执行:

                shell adb forward tcp:1234 tcp:1234

                target remote localhost:1234

                file obj/local/armeabi/程序

                就可以调试了


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值