Android 11,在skia/src/ops/GrorvalOpFactory.cpp中崩溃,帮我看看原因

问题描述

https://github.com/google/skia/blob/master/src/gpu/ops/GrOvalOpFactory.cpp

函数中的cras

this->setVertexAttributes(&fInPosition,7);

跟踪定位后,问题是fInPosition的next指针位置不是合法的Attribute,也就是说

     Attribute fInPosition;
     Attribute fInColor;
     Attribute fInCircleEdge;
     // Optional attributes.
     Attribute fInClipPlane;
     Attribute fInIsectPlane;
     Attribute fInUnionPlane;
     Attribute fInRoundCapCenters;

这些属性没有分配给连续的内存。

但是我在上面的代码添加了一行日志打印,崩溃就消失了。检查汇编代码后发现打印日志会改变编译方式。请问Android 11编译带来了哪些变化

解决方法

这个问题解决了。由于错误的PGO将函数的输入参数的数据复制到其他寄存器,导致内存未连接。