matrix
matrix copied to clipboard
AppMethodBeat织入的结果不成对
Issue /提问须知
在提交 issue 之前,我们应该先查询是否已经有相关的 issue 以及常见问题。提交 issue 时,我们需要写明 issue 的原因,以及编译或运行过程的日志。issue 需要以下面的格式:
异常类型:app 编译异常
matrix版本:如: 2.0.5
gradle版本:如: AGP 3.2.1、gradle 4.6
问题描述:如:在 android O 出现系统不兼容
发现 matrix 两个比较明显的织入问题:i() 和 o() 没有保证 百分百配对。
就会导致,想要 在 i() o()两次 插桩 systrace 的想法,没办法实施,会 污染 systrace 的结果,误导分析。
1、一个待织入的方法体内,有概率出现 出现 两次 i() 织入,如下图:
本身 一个方法体内部:应该是 一个 i(),多个可能的出口 o 才对。

2、matrix 对于 方法内部 api调用 因为异常导致中断跳出的场景,没有办法 织入 和前面的 i() 成对的 o();

em,怎么 图片不会自动上传。。。
我上面的描述,你们应该get到吧。。
本想通过 matrix插桩 配合 systrace 打tag的。。。 没想到 有bug啊。。。
差点忘了这个事情,那天 想出来的 临时解决方案,方便 大家参考:
对于 织入出现问题的class,加入 黑名单 跳过,防止 systrace 污染。