用ida进行Dalvik调试还是有很大的优势, 最关键的是可以不用打包. 现在有很多app都开始检查是否重新打包的. 虽然也可以去pass调这些地方. 但是显然很麻烦.. 另外一些app还加壳了. 搞起来更加麻烦… 所以可以用ida进行调试还是一种选择. 不过原来用ida调试Dalvik的时候有一个致命问题. locals窗口变量都没法显示.. 最近纠结了几次. 算是找到了一个解决办法.

在ida的locals窗口如果是显示成这样.

QQ Photo20150825155854

这里局部变量v0 v2都没法显示. 去到ida的论坛咨询这个问题, 说是丢失了变量类型信息. 所以没法显示类型.

QQ Photo20150825160051

 

因为ida自己没法确定类型形式. 所以需要我们自己来指定变量的类型信息, 其实ida的教程里面有说. 只是以前没仔细看. 原来是这样. 比如现在要显示v2的类型. 我们要在Watch View窗口.自己添加一个类型, 类似这样

(Object*)v2 (String)v2 (char*)v2 (int)v2

QQ Photo20150825160822

 

这样用ida调试相对就舒服很多了!