gdb在android開發中的使用相信很多開發人員都很想掌握,今天我們就用gdb在Android Emulator中進行調試,讓大家學習gdb調試。在Android手機開發平台的emulator裡,有兩種方式可以做Gdb調試:直接使用GdbServer或利用Gdb調試進行調試。
1、利用Gdb Server進行調試:
A、從下面的連結中下載針對Android的Gdb Server http://www.billrocks.org/android_libs/bin/
B、把下載的Gdb Server安裝到你的emulator 中
1)、 啟動emulator
2)、下載Gdb Server到你的emulator
開啟一個終端,運行:
$ adb shell
#cd data
#mkdir bin
在另外一個終端裡運行:
$ adb push gdbserver /data/bin
這樣通過Android自己的adb,把gdbserver 下載到emulator 中了。
C、運行gdbserver :
# /data/bin/gdbserver 10.0.2.2:1234 [args...]
D、回到另一終端,映射連接埠:
$telnet localhost 5554
telnet到emulator 中,運行下面的命令:
redir add tcp:1234:1234
E、在第三個終端中運行 gdb:
$gdb test
test 是你要調試的程式,然後在gdb命令列運行:
(gdb) target remote localhost:1234
然後你就可以像以前用gdb那樣進行程式調試了。
2、直接用本地Gdb進行調試
A、從下面的連結中下載Android調試包,它是用Android的toolchain編譯好的二進位檔案:
http://ortegaalfredo.googlepages.com/android-debug.tbz
B、解壓調試包,然後把gdb下載到你的emulator 中,當然如果你有真的手機,也可以這樣調試:
$adb push gdb /data/bin
C、利用adb串連到emulator
$adb shell
運行gdb,會出現下面的資訊:
# /data/bin/gdb
dlopen failed on 'libthread_db.so.1' - libthread_db.so.1: cannot open shared object file: No such file or directory
GDB will not be able to debug pthreads.
GNU gdb 6.7
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=arm-none-linux-gnueabi --target=".
(gdb)
D、 然後你就可以像以前用gdb那樣對程式進行調試了。