zoukankan      html  css  js  c++  java
  • 利用GDB调试Android里的程序

    0.编译整个源码,以便得到所有的调试符号,在froyo/out/target/product/$PRODUCT_NAME/symbols

    1.启动模拟器中的webbrowser,登入到adb shell中, 利用ps命令查看其进程ID, 然后启动gdbserver:
      # gdbserver :5049 /system/bin/app_process
    这个命令表示gdbserver监听5049端口,以便给其他gdbclient连入后调试app_process

    2.在本机的shell中,使用#adb forward tcp:5049 tcp:5049来转发到本地tcp端口上

    3.本地使用froyo/prebuilt/下的arm-eabi-gdb来进行连接gdbserver,先要对gdb进行设置,如下
    新建一个文件# cat << EOF > /tmp/gdb.cmd
                > set solib-absolute-prefix froyo/out/target/product/$name/symbols
                > set solib-search-path froyo/out/target/product/$name/symbols/system/lib
                > EOF
    接着执行: 
    # ./arm-eabi-gdb -x /tmp/gdb.cmd \
        froyo/out/target/product/$name/system/bin/app_process
    gdb > target remote xxx.xxx.xxx.xxx:5049

    gdb > 设置断点,进行调试

    run时报错The "remote" target does not support "run".  Try "help target" or "continue".但断点之后用c,可以运行。

  • 相关阅读:
    final关键字
    多态
    java特性-封装
    super的使用
    ==和equals的区别
    面向对象的三大特征
    this和static的用法
    如何一步步使用国内yum源一键安装openstack-ocata版本基于centos7
    Zabbix 4.2 安装
    自动化运维神器-ansible
  • 原文地址:https://www.cnblogs.com/leino11121/p/2381891.html
Copyright © 2011-2022 走看看