0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第三届大会回顾第7期 | 面向OpenHarmony大规模代码的路径敏感的稀疏值流分析

OpenHarmony TSC ? 来源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2025-08-18 11:31 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

演讲嘉宾 |蔡源稻

回顾整理 | 廖 涛

排版校对 | 宋夕明

wKgZPGie4yaAT9Q_AAZaF6BE9Qo348.png

嘉宾介绍

研究分论坛

蔡源稻,华为2012实验室技术专家。

正文内容

静态分析(Static Analysis)是软件开发中不可或缺的一部分,它可以帮助开发人员提高代码质量、减少缺陷和安全风险。OpenHarmony的编译环境复杂,代码量巨大,且由多种编程语言混合编程,在静态分析上存在不小挑战。如何提升OpenHarmony静态分析的准确性和效率?华为2012实验室技术专家蔡源稻在第三届OpenHarmony技术大会上进行了精彩分享。

wKgZPGie4yaALWGyAAEZX_Hr-BU757.jpg

在软件开发的生命周期中,代码的质量和安全性至关重要。随着软件系统的复杂性不断增加,如何在有限的时间和资源内,确保软件的功能正确性、性能优化以及安全性?这就涉及两种重要的分析技术:静态分析和动态分析。

动态分析指在程序运行时对其行为进行监控和分析,能够捕捉到实际运行中的性能瓶颈、内存泄漏和竞态条件等问题。相对而言,静态分析则在不执行程序的情况下利用软件结构穷举软件所有可能的运行时行为并将这些行为以数据结构形式记录,从而帮助开发者在早期阶段发现潜在的错误、安全漏洞和代码质量问题。

对于OpenHarmony而言,由于其编译环境复杂,代码量巨大,且由多种编程语言混合编程,静态分析存在以下挑战:

覆盖率不高:静态分析理论上可以完整覆盖程序运行行为,但工程代价太高/分析效率太低,导致实际上覆盖率不高;同时,动态分析也无法完整覆盖程序。

wKgZPGie4yaACtUoAAES5GWUUE4981.png

无法适配复杂编译:静态分析工具需要干预编译过程来获得待分析代码(IR),OpenHarmony的编译环境复杂 (涉及多个编译器,一个编译器不同版本),很难满足此要求。

wKgZPGie4yaAO9SvAACgrso46O4440.png

分析代价高:精确的静态分析,如控制流敏感、函数上下文敏感、路径敏感分析需要较高的分析代价(时间、内存)。对于OpenHarmony海量的代码而言,现有静态分析方法无法在物理资源和时间限制下完成代码分析。

wKgZPGie4yaAOpRiAAHC-5KfMmw583.png

库函数建模困难:由于库函数(e.g., STL C++)需要手动建模才能适配静态分析,但已有静态分析遇到未知库函数只能做保守假设或直接丢弃结果。

wKgZPGie4yaARXP8AAA81c80lSc344.png

针对上述问题,作者本人提出了以下解决方案,并介绍了当前在研产品“费马分析器(Fermat Analyzer)”的部分创新技术点:

非侵入编译的IR构建:非侵入编译的IR构建(Non-intrusive Compilation for IR Construction)是一种在编译过程中构建中间表示(Intermediate Representation, IR)的技术,其核心特点是在不修改或侵入源代码的情况下生成IR。在正向编译时,无需修改编译环境,套用工具在编译脚本即可完成IR构建;而反编译时,翻译可以处理第三方库,二进制形式等产品模块。

wKgZPGie4yeAb_GUAAFE4zFPy3w539.png

基于PDG的稀疏值流分析:Program Dependence Graph(PDG)是一种用于表示程序中语句或指令之间依赖关系的图形化数据结构。通过简洁编码数据依赖和控制依赖,能够清晰地表示程序的执行逻辑,并优化分析过程。具体做法有:(1)抛弃全局穷尽式的指针分析,通过高精度局部指针分析,发现并记录因为指针操作产生的函数内的内存读写数据依赖;(2)跨函数在按需分析时在调用函数中将跨函数数据依赖对齐;(3)指针同化为普通数据流,赋能按需计算,可理解为 IFDS 加入路径条件和指针信息。

wKgZPGie4yeABEwfAAGf9gwTOsE167.png

持久化设计,分析复用:通过复用第三方库分析结果,能够加速分析,减少内存占用;通过程序拆分,可在单机上完成大规模代码分析。

wKgZPGie4yeAMSW1AAFuP_Rg8gY559.png

大模型使能与辅助:当前,AI技术的快速发展,使大模型与代码分析相结合是一个重要趋势。例如,将大模型使能规约推断:函数行为推断(内存创建/释放,中断函数等),API别名信息推断;或通过大模型辅助误报诊断:基于缺陷程序切片以及缺陷信息进行误报诊断。

wKgZPGie4yeAaKeaAAL4RqajL6w992.png

接下来,对于复杂代码的静态分析的实际问题,看看费马分析器是如何解决的:

一、并发内存安全错误检查。现有的关于并发程序分析的精确方法往往效率较低。Canary方法首次将并发错误检测转化为Source-Sink值流 (Value Flow)的检查,通过监视内存对象在数据依赖关系中沿指针之间的流动,观察到Source最终沿Sink流路径到达汇。因此,考虑到只有对线程共享内存位置的内存访问才重要,许多线程执行交错对于检测的并发错误来说是无关紧要的,费马分析器采取了减少指数级爆炸的线程交错分析的方法。

wKgZPGie4yeAHQlUAAFmTNSdP_k347.png

二、准确高效的死锁检查。在执行上下文敏感的死锁检测时,容易出现函数上下文爆炸的问题 (Calling Context Explosion)。考虑到许多函数上下文对死锁检测来说是无关紧要的,因此,费马分析器采取了Peahen方法(第一种用于缓解低效问题的函数上下文缩减技术 (Context Reduction)),通过对两个协同阶段进行昂贵的函数上下文敏感计算的分解,进行上下文无关的锁图构建以发现死锁相关的函数。

wKgZPGie4yeAVnTwAAEX_O-SxsE226.png

三、准确高效的函数调用图:鸡尾酒疗法。对于解析函数指针的值,以及构建C代码的函数调用图,传统单一模式 (e.g., SVF, LLVM)——即用一种精度来分析所有的间接调用,往往要么不精确要么不高效。费马分析器采用多种精度来分析所有的间接调用,以自动准确的方式决定一个间接调用需要哪种准确的分析,并采用合适的精度来回避计算资源浪费。

wKgZPGie4yeAI2XpAABEkHNHMs8169.png

未来,随着AI大模型的迅速发展,代码规模和分布式架构的复杂性都不断提高,静态分析作为系统可信和软件质量的重要保障,也正从传统的模式匹配向智能化、场景化方向演进。随着技术的不断进步,静态分析将在软件开发的各个环节发挥更加关键的作用,为构建高质量、高性能、高安全性的软件系统提供坚实的支持。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3694

    浏览量

    95547
  • 代码
    +关注

    关注

    30

    文章

    4908

    浏览量

    71256
  • 混合编程
    +关注

    关注

    0

    文章

    27

    浏览量

    8366
  • 静态分析
    +关注

    关注

    1

    文章

    43

    浏览量

    4053
  • OpenHarmony
    +关注

    关注

    30

    文章

    3866

    浏览量

    18982
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第三届开放原子大赛正式启动

    近日,在2025开放原子开源生态大会开幕式上,第三届开放原子大赛正式启动,首批12个赛项同步发布。
    的头像 发表于 07-28 17:03 ?530次阅读

    第三届大会回顾6 | HarmonyOS NEXT原生智能,助力应用低成本生而智能

    发者和用户又提供了哪些AI能力?华为终端云服务小艺产品技术专家高光远在第三届OpenHarmony技术大会上进行了精彩分享。
    的头像 发表于 07-14 18:04 ?348次阅读
    <b class='flag-5'>第三届</b><b class='flag-5'>大会</b><b class='flag-5'>回顾</b><b class='flag-5'>第</b>6<b class='flag-5'>期</b> | HarmonyOS NEXT原生智能,助力应用低成本生而智能

    格创东智亮相第三届软件创新发展大会

    近日,由武汉市人民政府、湖北省经济和信息化厅主办的第三届软件创新发展大会(以下简称“大会”)在武汉光谷举行。
    的头像 发表于 06-17 16:52 ?575次阅读

    第三届百度文心杯创业大赛启动

    近日,第三届“文心杯”创业大赛面向全球正式启动报名。
    的头像 发表于 04-30 10:24 ?520次阅读

    中科创达旗下OSWare奥思维亮相第三届OpenHarmony技术大会

    近日,以“技术引领筑生态 万物智联创未来”为主题的第三届 OpenHarmony 技术大会在上海成功举行。会上,OpenHarmony统一互联PMC(项目群项目管理委员会)正式开启孵化
    的头像 发表于 11-12 10:40 ?991次阅读

    线上逛展 | 沉浸探索第三届OpenHarmony技术大会五大展区

    世博中心又有什么大事发生? 第三届OpenHarmony技术大会 五大展区全方位展示智慧互联未来 雷科技从现场发来探展邀约 一起跟随他的视角漫步展区 在精彩纷呈的特色产品、应用案例中 体验Op
    发表于 10-24 21:50

    焦点直击 | 一图尽览第三届OpenHarmony技术大会

    原文标题:焦点直击 | 一图尽览第三届OpenHarmony技术大会
    的头像 发表于 10-21 14:12 ?570次阅读

    市场活动 | 润和软件星闪业务亮相第三届OpenHarmony技术大会

    10月12日至13日,由OpenAtomOpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(TSC)主办的第三届OpenHarmony技术
    的头像 发表于 10-17 08:00 ?1679次阅读
    市场活动 | 润和软件星闪业务亮相<b class='flag-5'>第三届</b><b class='flag-5'>OpenHarmony</b>技术<b class='flag-5'>大会</b>

    高燃回顾第三届OpenHarmony技术大会精彩瞬间

    第三届OpenHarmony技术大会圆满落幕 全球开源精英齐聚 共同展示OpenHarmony技术、生态、人才的最新进展 见证OpenHarmony
    发表于 10-16 18:47

    第三届OpenHarmony技术大会主论坛嘉宾演讲大咖金句聚焦

    第三届OpenHarmony技术大会在上海璀璨落幕 本场思维碰撞与技术交融的盛宴 不仅见证了技术的飞跃 更是行业未来蓝图的共同描绘 让我们一同回顾主论坛上行业大咖们的金句发言! 精彩继
    的头像 发表于 10-16 10:35 ?582次阅读
    <b class='flag-5'>第三届</b><b class='flag-5'>OpenHarmony</b>技术<b class='flag-5'>大会</b>主论坛嘉宾演讲大咖金句聚焦

    深开鸿亮相第三届OpenHarmony技术大会,以技术驱动OpenHarmony生态发展

    10月12-13日,第三届OpenHarmony技术大会(以下简称“大会”)在上海顺利举行。本届大会以“技术引领筑生态,万物智联创未来”为主
    的头像 发表于 10-15 08:07 ?1080次阅读
    深开鸿亮相<b class='flag-5'>第三届</b><b class='flag-5'>OpenHarmony</b>技术<b class='flag-5'>大会</b>,以技术驱动<b class='flag-5'>OpenHarmony</b>生态发展

    迅龙软件受邀参加第三届OpenHarmony技术大会,共建共享鸿蒙生态

    10月12日-13日,第三届OpenHarmony技术大会在上海举办。大会邀请来自全球的开源操作系统技术领袖、前沿实践专家、广大开发者以及学术界知名专家,
    的头像 发表于 10-14 15:33 ?672次阅读
    迅龙软件受邀参加<b class='flag-5'>第三届</b><b class='flag-5'>OpenHarmony</b>技术<b class='flag-5'>大会</b>,共建共享鸿蒙生态

    第三届OpenHarmony技术大会在上海成功举办

    10月12日,以“技术引领筑生态,万物智联创未来”为主题的第三届OpenHarmony技术大会(以下简称“大会”)在上海成功举办。本次大会
    发表于 10-13 11:14

    第三届OpenHarmony技术大会亮点纷呈

    10月12日—13日 第三届OpenHarmony技术大会如期而至, 高能看点,一触即发! 让我们携手走进这场技术盛宴 ?
    的头像 发表于 10-11 11:08 ?656次阅读
    <b class='flag-5'>第三届</b><b class='flag-5'>OpenHarmony</b>技术<b class='flag-5'>大会</b>亮点纷呈

    30s高能速递 | 第三届 OpenHarmony技术大会精彩抢鲜看

    技术引领筑生态 万物智联创未来 第三届 OpenHarmony技术大会 如约而至 高燃登场 10月12-13日,上海世博中心 重磅嘉宾,前沿议题 看亿万代码如何改变未来,与卓越伙伴共绘
    发表于 10-08 17:36