Android gdb調試so

手機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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章