您的位置:首页 > 移动开发 > Android开发

Android gdb调试so

2012-06-12 11:09 459 查看
手机GDB调试方法:

前提: 1. 手机已经root

             2. 手机跟HOST机器能互相Ping通(可通过无线路由器连接)

步骤:

1. 编译加入 -O0选项,编译libxx.so

2. 在adb shell 环境执行:

   ps

找到要调试进程的pid,假设是5084,假设电脑IP是192.168.1.115,手机IP是192.168.1.116

执行

   gdbserver 192.168.1.115:5039 --attach 5084

3. HOST端执行:

adb forward tcp:5039 tcp:5039

/Android4.0Source/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gdb /Android4.0Source/out/target/product/generic/symbols/system/bin/app_process 

4. (gdb)

set solib-absolute-prefix /Android4.0Source/out/target/product/generic/symbols

set solib-search-path /Android4.0Source/out/target/product/generic/symbols/system/lib

连接手机gdbserver:

target remote 192.168.1.116:5039

如果加载符号文件,尝试列出当前中断源码:

输入l

若显示以下类似内容,则可成功进行gdb调试了

5 ENTRY(epoll_wait)

6    .save   {r4, r7}

7    stmfd   sp!, {r4, r7}

8    ldr     r7, =__NR_epoll_wait

9    swi     #0

10    ldmfd   sp!, {r4, r7}

11    movs    r0, r0

12    bxpl    lr

13    b       __set_syscall_errno

14 END(epoll_wait)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息