zoukankan      html  css  js  c++  java
  • android中使用gdbserver调试c程序

    先废话两句,这篇文章可能有所缺陷,因为我并没有条件去测试动态库的调试。(主要是因为是自己的手机不想乱放各种so)

    所以我只能说有空的话我会去进行下测试,这里就先这样了。

     

    1、测试代码gdb-test.c

    #include <stdio.h>

    int main() {

      printf("this is gdb test !!! ");

    }

     

    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

  • 相关阅读:
    CSS宽高背景介绍
    js控制iframe高度自动撑开
    点击除指定元素以外的任意地方隐藏js
    es6中对象转数组,转map
    JavaScript常用方法(工具类的封装)
    h5端提示下载app
    web端调百度地图页面
    前端分享功能
    手机注册发送验证码倒计时
    判断滚动条滑到底部触发事件
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/4737098.html
Copyright © 2011-2022 走看看