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

Android 环境下使用GDB

2010-07-20 10:34 351 查看

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库进行调试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: