android中使用gdbserver调试c程序
2015-08-17 17:09
603 查看
先废话两句,这篇文章可能有所缺陷,因为我并没有条件去测试动态库的调试。(主要是因为是自己的手机不想乱放各种so)
所以我只能说有空的话我会去进行下测试,这里就先这样了。
1、测试代码gdb-test.c
#include <stdio.h>
int main() {
printf("this is gdb test !!!\n");
}
2、Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -g
LOCAL_STRIP_MODULE := flase #禁止对最终生成的gdb-test进行strip处理
LOCAL_MOULE_TAGS := optional
LOCAL_SRC_FILES := gdb-test.c
LOCAL_MODULE := gdb-test
include $(BUILD_EXECUTABLE)
3、拷贝gdb-test gdbserver到device的data目录下(这里只是为了简单)
4、在shell中输入
# adb shell
进入到device中的shell中
# cd data
# ./gdbserver :2000 ./gdb-test (注:这里可以给gdb-test传参)
我们给gdbserver使用的端口为2000
成功的话你会看到
# Listening on port 2000
说明成功开启了服务
5、 在PC上执行
adb forward tcp:2000 tcp:2000
6、在运行PC上的gdb,具体路径为
#arm-linux-androideabi-gdb ./gdb-test
注意,这里的gdb-test的位置非常重要,因为你可以看到在libs下有个gdb-test,在obj下也有,为了保证符号表
能成功进行加载,这里必须使用在obj下的gdb-test,因为libs中生成的始终是去掉符号表的,只有objs中的才是真正可调试的。
成功后进入gdb中,输入
# (gdb)target remote :2000
所以我只能说有空的话我会去进行下测试,这里就先这样了。
1、测试代码gdb-test.c
#include <stdio.h>
int main() {
printf("this is gdb test !!!\n");
}
2、Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -g
LOCAL_STRIP_MODULE := flase #禁止对最终生成的gdb-test进行strip处理
LOCAL_MOULE_TAGS := optional
LOCAL_SRC_FILES := gdb-test.c
LOCAL_MODULE := gdb-test
include $(BUILD_EXECUTABLE)
3、拷贝gdb-test gdbserver到device的data目录下(这里只是为了简单)
4、在shell中输入
# adb shell
进入到device中的shell中
# cd data
# ./gdbserver :2000 ./gdb-test (注:这里可以给gdb-test传参)
我们给gdbserver使用的端口为2000
成功的话你会看到
# Listening on port 2000
说明成功开启了服务
5、 在PC上执行
adb forward tcp:2000 tcp:2000
6、在运行PC上的gdb,具体路径为
#arm-linux-androideabi-gdb ./gdb-test
注意,这里的gdb-test的位置非常重要,因为你可以看到在libs下有个gdb-test,在obj下也有,为了保证符号表
能成功进行加载,这里必须使用在obj下的gdb-test,因为libs中生成的始终是去掉符号表的,只有objs中的才是真正可调试的。
成功后进入gdb中,输入
# (gdb)target remote :2000
相关文章推荐
- Android_如何查看应用签名信息
- android加密解密算法之3DES算法用例
- android
- android AudioManager类 详解
- 深入讲解Android中Activity launchMode
- Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)
- androidのadb命令终端实时打印cpu资源
- android listview滚动 edittext 数据就变了
- Android Studio 快捷键
- Android : onTouch 次序
- Android动画
- Android Development
- Android 如何实现屏幕转换方向
- android studio 编码
- Android Context的startService方法如何使用?
- Android 用户表单融合各类简易控件以及融入FloatingActionButton以及butterknife
- android studio 快捷键
- Android 用户表单融合各类简易控件以及融入FloatingActionButton以及butterknife
- Android实现二维码扫描登录网页
- Android 升级数据库的最佳写法