-
-
[注意]smalidea的坑
-
2016-12-28 10:22
5086
-
用过smalidea动态调试smali的朋友应该有遇过一个问题:
乱跳!总不能照着指令一步步走!或Watch不了寄存器!
smalidea官网其实有提到,IDEA的版本必须14.1或以上,才能单步调试,否则是按照行号(.line)执行而非smali指令。
原文:
Single-instruction stepping is only supported in IDEA 14.1 and greater, and any future version of Android Studio based on IDEA 14.1 or greater. In earlier versions, attempting to single step will step to the next .line directive, instead of stepping to the next instruction.
但这里有坑!实际上只有IDEA 14.1能单步,更高版本都不行
这是我测试多个版本的的结论
但IDEA 14.1还是无法watch寄存器...
我花了几天测试各版本的IDEA / Android Studio 后发现smalidea都有bug(不是无法单步 不然就是无法watch)
结果发现作者其实有修复smalidea的bug,但只更新源码而为释出插件成品(作者提供的插件成品是有bug的旧版)
因此我下载最新源码自己编译了成品(https://pan.baidu.com/s/1ch7VSa)
测试后发现可以在IDEA15.0.6 正常运作(其他版本懒得测试了)
如果不想踩坑,请直接下载IDEA15.0.6 + 我编译的smalidea
另外调试时DDMS请开着 听我的,省麻烦(port设置8700,不需要adb forward)
要好好用个smalidea真是折腾阿
希望别再出问题啦
各位朋友们若知道其他版本的AS/IDEA也能正常调试smali欢迎分享
[培训]《安卓高级研修班(网课)》月薪三万计划,掌
握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法