卓修武
卓修武
> 采集其他线程-锁等待信息测试 其他2个按钮的功能正常吗,我是测了3个都没崩溃
> > 其他2个按钮的功能正常吗,我是测了3个都没崩溃 > > ”采集主线程调用栈“和”采集其他线程-锁等待信息测试“ 只有这两个路径会崩, 因为这两个路径才会调用SuspendThreadByThreadId 还测了哪些机型会崩溃吗,我是用的云测,在这个手机上测试 确实没崩溃
> @Knight-ZXW 像华为、荣耀 12系统的手机, 我测了几台都是正常的; 我反馈的oppo A93设备崩溃问题, 我目前初步定位是 获取的threadList实例不对, 应该是oppo 系统有魔改, 导致数据结构与google源码不一致, 目前我将数据结构改成PartialRuntimeTiramisu(Android13), 就可以正常运行; > > 目前我也不确定还有哪些设备会出现这样的问题, 想加个校验逻辑, 大佬有什么比较好的方式判断获取的指针是threadList对象? 这个只能自己研究了,我还没研究过,提供个思路比如用 inline hook某个 函数参数包含 ThreadList 的api (比如 SuspendThreadByPeer), 然后通过某种方式去触发这个Api的调用 (比如正常的Java层 Thread.getStackTrace...
什么系统及版本
> > 什么系统及版本 > > @Knight-ZXW 应该是Android 10系统的问题, 其他高版本测了几台都没问题 Android 10测试机型: 华为P40 Pro Android 10、Oppo FindX Android 10 原因是 Android 10 和Android 11 art_method 结构 不一样,可以自己改下
> @Knight-ZXW 我对比了两个版本的代码, 没发现数据结构有差异, 大佬能否截图示意下?   我说错了, 是android 12 相比之前的版本,删去了 uint32_t dex_code_item_offset_; 字段。
手上没这个机型,可以尝试调试看下是什么原因