Android 环境下使用GDB

来源:互联网 发布:免费制作app软件 编辑:程序博客网 时间:2024/04/29 22:29

Android环境下使用GDB
1) 编译包含Debug 信息
设置如下环境变量:
TARGET_BUILD_TYPE=debug
TARGET_STRIP_MODULE=false (发现即使设置编译为Debug模式, 最后生成的文件系统中的程序和库还是会被strip. 设置此选项可以避免被strip)不过还要需要修改一下build/core/combo/linux-arm.mk, 否者即使设置TARGET_STRIP_MODULE=false也无效
修改
113:  TARGET_STRIP_MODULE:=true

ifeq ( $(strip $(TARGET_STRIP_MODULE)),,)
TARGET_STRIP_MODULE := true
endif

然后 make

2) 在板子上启动gdb server
gdb-server IP-address:Port 可执行程序
或者
gdb-server IP-address:Port --attach 程序的PID
(Note: IP-Address是目标板自己的IP地址, 此选项可以省略)

3) 在主机端

(前提: 进入 android 目录, 执行过 source build/envsetup.sh)

#gdbclient 在板子上执行的程序名称
(默认已经设置好如下信息, 无需自己设置
set solib-absolute-prefix /absolute-source-path/out/debug/target/product/product-name/symbols
set solib-search-path /absolute-source-path/out/debug/target/product/product-name/symbols/system/lib)
(gdb) target remote 板子的ip-address:port

(gdb) b main
(gdb) c
程序会停在main函数

http://xiaobo.spaces.live.com/blog/cns!5EC21DEE9B73C1A8!1385.entry

gdbserver现在的Android源码都会提供,可以直接用了,不过现在只能对可执行程序进行调试,还不能对so库进行调试


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ccskyer/archive/2010/07/20/5748840.aspx