Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AppMethodBeat织入的结果不成对 #858

Open
wsycomeon opened this issue Aug 4, 2023 · 2 comments
Open

AppMethodBeat织入的结果不成对 #858

wsycomeon opened this issue Aug 4, 2023 · 2 comments

Comments

@wsycomeon
Copy link

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 才对。

![image](https://github.com/Tencent/matrix/assets/15910433/a7d89ee6-baef-4a1f-aa64-96b31b1c485f)



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

![image](https://github.com/Tencent/matrix/assets/15910433/277c130a-864b-4e7f-bba1-7b04f6aeb403)



@wsycomeon
Copy link
Author

em,怎么 图片不会自动上传。。。

我上面的描述,你们应该get到吧。。

本想通过 matrix插桩 配合 systrace 打tag的。。。
没想到 有bug啊。。。

@wsycomeon
Copy link
Author

差点忘了这个事情,那天 想出来的 临时解决方案,方便 大家参考:

对于 织入出现问题的class,加入 黑名单 跳过,防止 systrace 污染。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant