一种CAA链接库完整性诊断方法及系统技术方案

技术编号:37667364 阅读:19 留言:0更新日期:2023-05-26 04:26
本发明专利技术属于编译诊断技术领域,涉及一种CAA链接库完整性诊断方法,通过数据挖掘建立了头文件和库文件的关联数据库,然后扫描工作空间编译单元所依赖的头文件,查询所依赖的库文件,借助集合运算进行校验和诊断。上述方法输入输出明确,运算逻辑清晰,很容易通过插件的形式进行自动化诊断,能够很好的确定CAA库文件完整性问题。适于在CAA的二次开发应用中推广。推广。推广。

【技术实现步骤摘要】
一种CAA链接库完整性诊断方法及系统


[0001]本专利技术属于编译诊断
,具体公开了一种CAA链接库完整性诊断方法及系统。

技术介绍

[0002]达索3DE平台是当今水利水电行业的主流三维设计及BIM应用平台,具有协同设计、分析计算、施工仿真、商业智能等多种功能。3DE平台客户端开发套件为CAA+RADE,CAA是3DE平台客户端二次开发接口API,提供了150多个框架约500多个子模块的头文件和库文件;RADE是基于Visual Studio集成开发环境的插件,提供CAA开发相关的功能,如语法提示、编译链接、单元测试等。
[0003]软件开发过程中,需要对模块的头文件(header文件)的引用模式和库文件(lib文件)的完整性做出诊断。对于CAA而言,RADE能够很好地诊断CAA模块头文件引用,如自动引入间接依赖,检查可见性约束等,功能非常实用。但是RADE并未提供CAA模块库文件相关的诊断功能,需要开发人员自行手工检查,步骤繁琐、工作量大、还容易遗漏,经常导致编译错误。

技术实现思路

[0004]为克服现有技术在监控数据传输与处理方面的不足,本专利技术提供了一种CAA链接库完整性诊断方法,包括以下步骤:
[0005]建立头文件和库文件的键值对数据库;所述数据库中键为头文件名,值为所依赖的库文件列表,扫描CAA工作空间编译单元,获取已引用DS类头文件的集合H和已定义库文件的集合A;
[0006]根据所述键值数据库查询所述集合H对应库文件的集合B;
[0007]对所述集合A、集合B进行运算,根据运算结果给出完整性诊断。
[0008]优选的,所述依赖包括直接依赖和间接依赖。
[0009]优选的,所述完整性诊断包括:
[0010]所述集合A∩集合B的结果对应于已正确定义的库文件,标记为正确;
[0011]所述集合A

集合B的结果对应于不应引用而引用的库文件,标记为冗余警告;
[0012]所述集合B

集合A的结果对应于应引用而未引用的库文件,标记为缺失错误。
[0013]本专利技术的另一方案在于提供一种CAA链接库完整性诊断系统,包括下述功能模块:
[0014]构建模块,用于建立头文件和库文件的键值对数据库;所述数据库中键为头文件名,值为所依赖的库文件列表,扫描CAA工作空间编译单元,获取已引用DS类头文件的集合H和已定义库文件的集合A;
[0015]查询模块,用于根据所述键值数据库查询所述集合H对应库文件的集合B;
[0016]诊断模块,用于对所述集合A、集合B进行运算,根据运算结果给出完整性诊断。
[0017]优选的,所述依赖包括直接依赖和间接依赖。
[0018]优选的,所述完整性诊断包括:
[0019]所述集合A∩集合B的结果对应于已正确定义的库文件,标记为正确;
[0020]所述集合A

集合B的结果对应于不应引用而引用的库文件,标记为冗余警告;
[0021]所述集合B

集合A的结果对应于应引用而未引用的库文件,标记为缺失错误。
[0022]相对于现有技术,本专利技术具有以下有益效果:本专利技术方法通过数据挖掘建立了头文件和库文件的关联数据库,然后扫描工作空间编译单元所依赖的头文件,查询所依赖的库文件,进行校验和诊断。上述方法输入输出明确,运算逻辑清晰,很容易通过插件的形式进行自动化诊断,经过测试和验证,准确率可以达到100%,能够很好的确定CAA库文件完整性问题。
附图说明
[0023]图1是本专利技术实施例的CAA链接库完整性诊断流程图;
[0024]图2是本专利技术实施例的用于CAA诊断的KV数据库建立流程图。
具体实施方式
[0025]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行描述,所描述的实施例是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创新劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]结合说明书附图1

2,一种CAA链接库完整性诊断方法的实施方式如下:
[0027]S1:通过对CAADoc进行数据挖掘,建立DS类头文件和库文件键值对数据库(KV数据库)该数据库键为类名,值为所依赖的库列表,先检索出直接依赖的库列表,再检索相关间接依赖的库列表。
[0028]S2:扫描CAA工作空间编译单元,获取已引用的DS类头文件集合H和已定义的库文件集合A。
[0029]S3:根据KV数据库查询已引用的DS类头文件集合H所对应的库文件集合B。
[0030]S4:对A、B进行集合运算,按下述结果给出完整性诊断:
[0031]A∩B对应于已正确定义的库文件,标记为正确;
[0032]A

B对应于不应引用而引用的库文件,标记为冗余警告;
[0033]B

A对应于应引用而未引用的库文件,标记为缺失错误。
[0034]本领域内的技术人员应明白,本专利技术的实施例可提供为方法、系统、或计算机程序产品。因此,本专利技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本专利技术可采用在一个或多个其中包含有计算机可用程序代码的计算机、可用存储介质(包括但不限于磁盘存储器、CD

ROM、光学存储器等)上实施的计算机程序产品的形式。
[0035]本专利技术是参照根据本专利技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0036]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0037]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0038]最后应说明的是:以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,尽管参照前述实施例对本专利技术进行了详细的说明,对于本领域本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CAA链接库完整性诊断方法,其特征在于包括以下步骤:建立头文件和库文件的键值对数据库;所述数据库中键为头文件名,值为所依赖的库文件列表,扫描CAA工作空间编译单元,获取已引用DS类头文件的集合H和已定义库文件的集合A;根据所述键值数据库查询所述集合H对应库文件的集合B;对所述集合A、集合B进行运算,根据运算结果给出完整性诊断。2.如权利要求1所述的一种CAA链接库完整性诊断方法,其特征在于,所述依赖包括直接依赖和间接依赖。3.如权利要求2所述的一种CAA链接库完整性诊断方法,其特征在于,所述完整性诊断包括:所述集合A∩集合B的结果对应于已正确定义的库文件,标记为正确;所述集合A

集合B的结果对应于不应引用而引用的库文件,标记为冗余警告;所述集合B

集合A的结果对应于应引用而未引用的库文件,标记为缺失错误。4.一种CAA链接库完整性诊断...

【专利技术属性】
技术研发人员:张乐谢明霞王宁李南辉
申请(专利权)人:长江勘测规划设计研究有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1