gdb和gdbserver调试android应用与可执行

学习android5.0以后的ART虚拟机,看了看源码,比较头疼,决定通过动态调试的方式去学习。Art虚拟机有一个dex2oat的可执行程序。就想到了通过gdb和gdbserver来debug这个dex2oat。记录一下调试方法:gdb运行在本地系统(windows/linux)gdbserver运行在android真机/模拟器上(adb shell ls /syste
摘要由CSDN通过智能技术生成

学习android5.0以后的ART虚拟机,看了看源码,比较头疼,决定通过动态调试的方式去学习。

Art虚拟机有一个dex2oat的可执行程序。就想到了通过gdb和gdbserver来debug这个dex2oat。


记录一下调试方法:


gdb运行在本地系统(windows/linux)

gdbserver运行在android真机/模拟器上(adb shell ls /system/bin查看是否有gdbserver,如果没有,可以从源代码prebuild文件夹中获取,也可以从ndk的文件中获取)


Ps:gdb和gdbserver的版本要一致,不然会出错的



一:“


1,准备工作

1-1,在prebuild文件夹中找到gdb和gdbserver的可执行文件(ndk中也有)

1-2,把gdbserver 通过adb shell push进system/bin

1-3,把dex2oat需要的hello.jar给push到/data/test/中


2,通过adb在android模拟器中通过gdbserver关联相关的进程或者启动相关进程

2-1,gdbserver关联相关的进程 : adb shell gdbserver :端口号1234--attach 进程pid

(进程pid可以通过adb shell ps查看,调试应用可以attach system_process(没有测试))


2-2,gdbserver启动相关的进程: adb shell gdbserver :端口号1234 dex

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值