OpenHarmony开发者论坛
标题:
【TEST测试】CFI CHECK crash的处理
[打印本页]
作者:
诚迈_雨哥
时间:
2024-6-1 15:05
标题:
【TEST测试】CFI CHECK crash的处理
[md]# 1. 问题
## a. 运行测试用例时无疾而终
例如:运行 IntentionServiceTest用例时,出现 RUN 字段后就异常退出,如下图


## b. 导出Crash文件
导出的目录要提前建好,假设为 D:\Test\log\1\


## c. 打开日志查看
显然 有一个包含 IntentionServiceTest 字段的Crash 日志文件,打开查看,发现有 __cfi_check 字段


# 2. 原因
经过搜索cfi 字段发现,待测试模块存在cfi检查,而当前模块没有,相互调用时报告异常。
本着这个问题既不是第一次出现,也不是最后一次出现的想法,在当前子系统目录搜索,在很多BUILD.gn中终于找到了 cfi 的相关设置。
# 3. 解决方案
## 增加 cfi_check,如红框所示问题解决


**含义如下:**


# 4. 个别模块增加了cfi 检查,在运行时还会崩溃的处理
经过分析存在如下两种情况:
* a.模块增加了cfi检查,但是个别函数不能进行检查意味着这个函数避免cfi检查,增加免检字段,如果有头文件,则函数声明的地方也要添加

* b.该模块增加了cfi 检查,但是它依赖的其他模块没有进行cfi检查
于是,将它依赖的其他模块头文件目录列入免检清单

[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5