Ubuntu和Mac使用gdbserver远程调试android源码

一、gdbserver在android上远程调试进程
0.关闭Enforcing
# adb shell setenforce 0

1.拷贝gdb和gdbserver文件
<1>PC端为Client (Ubuntu Or Mac)
【1】gdb client for Ubuntu路径位置
    prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-gdb
【2】gdb client for Mac路径位置
    prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-gdb

<2>Android arm平台gdbserver路径位置
   prebuilts/misc/android-arm/gdbserver
<3>out/target/product/msm8996/symbols/system/bin/mediaserver
   将带symbols的mediaserver拷贝出来,push到Board上

3.gdb与gdbserver远程调试步骤
  PC    ip:192.168.2.2
  Board ip:192.168.2.3
  <1>在Board上,把gdbserver push到Board上
    # adb push gdbserver /system/bin
    # adb shell ps | grep mediaserver
    # adb shell gdbserver 192.168.2.2:1234 --attach 755 
    注意:gdbserver监听的是PC的ip和1234端口,attach mediaserver进程号

  <2>在PC上
     #    gdb 
    (gdb) target remote 192.168.2.3:1234
    注意:这时候gdb连上PC的ip和端口,开始debug.
二、gdb在android上远程调试so文件
  把out/target/product/xxx/symbols/system/lib/hw/audio.so拷贝到被子上
  # adb push audio.so system/lib/hw
  1.在Board上
   # adb shell
   # gdbserver 10.100.27.2:1234 ./audio.so

  2.在PC上
   # gdb audio.so
   # target remote 192.168.2.3:1234
   # b main
   # c
   # l
   # bt

猜你喜欢

转载自blog.csdn.net/u010164190/article/details/78596075