CN107797805B - 一种代码封装方法、装置及计算机可读存储介质 - Google Patents
一种代码封装方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107797805B CN107797805B CN201711045919.2A CN201711045919A CN107797805B CN 107797805 B CN107797805 B CN 107797805B CN 201711045919 A CN201711045919 A CN 201711045919A CN 107797805 B CN107797805 B CN 107797805B
- Authority
- CN
- China
- Prior art keywords
- function
- input
- output interface
- simulink
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种代码封装方法、装置及计算机可读存储介质,其中,代码封装方法,包括:接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型。本发明无需设计人员学习Simulink下的封装过程,实现从纯手工代码开发向MBD开发的过渡,能够简便快捷地对C/C++语言代码封装至Simulink。
Description
技术领域
本发明涉及计算机软件领域,特别是指一种代码封装方法、装置及计算机可读存储介质。
背景技术
Simulink是现今主流的算法设计工具,设计工作者常常需要把C/C++编写的经过验证的算法代码集成到Simulink环境下进行联合仿真。Simulink本身支持继承C/C++代码,但是将C/C++代码集成至Simulink时,首先需要设计工作者把源代码改装成符合Simulink规范的代码,即手动编码s-function函数形式,该函数为按照Simulink标准格式修改的C语言函数,同时还要对Simulink的legacy code tool工具箱使用熟练,如果有上百个程序需要封装,尤其是代码包含对象时,需要耗费几个月时间进行调试集成。
发明内容
本发明要解决的技术问题是提供一种代码封装方法、装置及计算机可读存储介质,以解决现有技术中将C/C++代码封装至Simulink环境时,需要手动将源代码改装成符合Simulink规范的代码,封装过程繁琐,且当封装程序较多时,所需耗费时间长的问题。
第一方面,本发明实施例提供一种代码封装方法,包括:
接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;
根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型。
其中,所述识别C/C++语言代码的函数名称、函数参数以及输入输出接口的步骤,包括:
接收以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息;
根据所述主函数信息和所述初始函数信息,基于搜索算法识别所述函数名称、所述函数参数以及输入输出接口。
其中,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤,包括:
根据所述函数名称、所述函数参数以及输入输出接口生成***函数和目标语言编译器文件。
其中,所述获得目标模型的步骤,包括:
根据所述***函数和所述目标语言编译器文件,编译生成符合Simulink运行环境的脚本文件,获得目标模型。
其中,所述方法还包括:
在编译生成符合Simulink运行环境的脚本文件时,若检测到故障代码,显示报错信息。
其中,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤,还包括:
若接收到对所述***函数的第一修改信息,根据所述第一修改信息对所述***函数进行修改。
第二方面,本发明实施例提供一种代码封装装置,包括:
接收识别模块,用于接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;
处理模块,用于根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型。
其中,所述接收识别模块包括:
接收单元,用于接收以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息;
识别单元,用于根据所述主函数信息和所述初始函数信息,基于搜索算法识别所述函数名称、所述函数参数以及输入输出接口。
其中,所述处理模块包括:
生成单元,用于根据所述函数名称、所述函数参数以及输入输出接口生成***函数和目标语言编译器文件。
其中,所述处理模块包括:
获得单元,用于根据所述***函数和所述目标语言编译器文件,编译生成符合Simulink运行环境的脚本文件,获得目标模型。
其中,所述装置还包括:
显示模块,用于在编译生成符合Simulink运行环境的脚本文件时,若检测到故障代码,显示报错信息。
其中,所述处理模块还包括:
修改单元,用于若接收到对所述***函数的第一修改信息,根据所述第一修改信息对所述***函数进行修改。
第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述的代码封装方法的步骤。
本发明实施例中,通过接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型,这样,无需设计人员学习Simulink下的封装过程,实现从纯手工代码开发向MBD开发的过渡,能够简便快捷地对C/C++语言代码封装至Simulink。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1表示本发明实施例提供的代码封装方法的流程示意图;
图2表示本发明实施例提供的代码封装装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
请参见图1,其示出的是本发明实施例提供的代码封装方法的流程示意图。
本发明实施例提供一种代码封装方法,可以包括:
步骤101,接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口。
本步骤中,接收用户导入C/C++语言代码,并对C/C++语言代码的函数名称、函数参数以及输入输出接口进行识别,以使得C/C++语言代码能够实现封装并在Simulink中运行进行联合仿真。
步骤102,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型。
本步骤中,基于步骤101识别得到的函数名称、函数参数以及输入输出接口,对C/C++语言代码进行修改,并生成符合Simulink标准格式的目标模块,从而获得满足Simulink环境的目标模型。这样,能够满足将C/C++语言代码自动化生成为满足Simulink环境的目标模型,不需要用户学习Simulink下的封装过程,实现从纯手工代码开发向MBD开发的过渡,使封装过程更为简便快捷。其中,本实施例中,预先设置已有的、经过验证的C/C++语言代码与符合Simulink标准格式的目标模块之间的对应关系。
本实施例中,通过接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型,这样,无需设计人员学习Simulink下的封装过程,能够简便快捷地对C/C++语言代码封装至Simulink。
其中,在本发明一实施例中,步骤101,识别C/C++语言代码的函数名称、函数参数以及输入输出接口的步骤,可以包括以下步骤:
接收以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息;
根据所述主函数信息和所述初始函数信息,基于搜索算法识别所述函数名称、所述函数参数以及输入输出接口。
本发明实施例中,为最大程度的兼容现有代码,根据C/C++语言代码的编写规范和现有C/C++语言代码的实际情况,预先设计形成导入C/C++语言代码的标准化格式要求,即以预设规则声明C/C++语言代码中的函数体。具体而言,即接收用户以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息。在一优选实施例中,该预设规则中,可以以doubleIt为函数名,systemStep表示Simulink求解器每个仿真步长会调用下面的代码,systemInit表示Simulink求解器初始化需要执行的代码。在接收到以预设规则表示的头文件中的主函数信息和初始函数信息后,采用基于正则表达式的搜索算法识别关键字,自动识别函数的函数名称、函数参数以及输入输出接口。其中,本实施例中,为便于用户查看,可以在界面上显示识别结果,即显示函数名称、函数参数以及输入输出接口。
其中,在一实施例中,步骤102中,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤,可以包括:
根据所述函数名称、所述函数参数以及输入输出接口生成***函数(S-函数)和目标语言编译器(Target Language Compiler,TLC)文件。
本实施例中,根据输入输出接口、函数名称以及函数参数生成对应的***函数和目标语言编译器文件,能够符合Simulink的运行要求,并且确保C/C++语言代码中所包含的对象的完整性。也就是说,本实施例中支持对lib库的封装,支持结构体作为模型接口;并且能够支持动态链接库,对于用到了面向对象的编程的源代码,能够把C/C++语言代码定义的结构体自动生成bus总线变量。
其中,在一实施例中,步骤102中,所述获得目标模型的步骤,可以包括:
根据所述***函数和所述目标语言编译器文件,编译生成符合Simulink运行环境的脚本文件,获得目标模型。
本发明实施例中,在生成***函数和目标语言编译器文件后,基于***函数和目标语言编译器文件进行编译生成MEX文件,生成符合Simulink运行环境的脚本文件,以获得满足Simulink环境的目标模型。
其中,在本发明实施例中,所述方法还可以包括以下步骤:在编译生成符合Simulink运行环境的脚本文件时,若检测到故障代码,显示报错信息。本实施例中,通过检测编译过程中出现的故障代码,并显示报错信息,能够方便用户快捷简便地了解故障代码,提高封装效率。
另外,在一优选实施例中,为满足用户的多样化需求,步骤102中,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤,还可以包括以下步骤:若接收到对所述***函数的第一修改信息,根据所述第一修改信息对所述***函数进行修改。本实施例中,用户能够根据需求对生成的***函数进行修改,以满足自身需要。
此外,在一优选实施例中,步骤101,接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口的步骤之后,步骤102,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤之前,所述方法还可以包括:若接收到对函数名称、函数参数和/或输入输出接口的第二修改信息,根据所述第二修改信息对函数名称、函数参数和/或输入输出接口进行修改。这样,以便于用户对函数名称、函数参数和/或输入输出接口进行调整。
本发明实施例提供的代码封装方法,通过接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型,这样,无需设计人员学习Simulink下的封装过程,实现从纯手工代码开发向MBD开发的过渡,能够简便快捷地对C/C++语言代码封装至Simulink。
基于上述方法,本发明实施例还提供一种用以实施上述方法的装置。
请参见图2,其示出的是本发明实施例提供的代码封装装置的结构示意图。本发明实施例提供一种代码封装装置200,可以包括:接收识别模块210和处理模块220。
接收识别模块210,用于接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;
处理模块220,用于根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型。
其中,在一实施例中,所述接收识别模块210可以包括:接收单元和识别单元。
接收单元,用于接收以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息;
识别单元,用于根据所述主函数信息和所述初始函数信息,基于搜索算法识别所述函数名称、所述函数参数以及输入输出接口。
其中,在一实施例中,所述处理模块220可以包括:生成单元。
生成单元,用于根据所述函数名称、所述函数参数以及输入输出接口生成***函数和目标语言编译器文件。
其中,在一实施例中,所述处理模块220可以包括:获得单元。
获得单元,用于根据所述***函数和所述目标语言编译器文件,编译生成符合Simulink运行环境的脚本文件,获得目标模型。
其中,在一实施例中,所述装置还可以包括:显示模块。
显示模块,用于在编译生成符合Simulink运行环境的脚本文件时,若检测到故障代码,显示报错信息。
其中,在一实施例中,所述处理模块220还可以包括:修改单元。
修改单元,用于若接收到对所述***函数的第一修改信息,根据所述第一修改信息对所述***函数进行修改。
本发明实施例提供的代码封装装置能够实现图1的方法实施例中代码封装装置实现的各个过程,为避免重复,这里不再赘述。
本发明实施例提供的代码封装装置,通过接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型,这样,无需设计人员学习Simulink下的封装过程,实现从纯手工代码开发向MBD开发的过渡,能够简便快捷地对C/C++语言代码封装至Simulink。
另外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述代码封装方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
需要说明的是,在发明实施例中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种代码封装方法,其特征在于,包括:
接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;
根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型;
其中,所述识别C/C++语言代码的函数名称、函数参数以及输入输出接口的步骤,包括:
接收以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息;
根据所述主函数信息和所述初始函数信息,基于搜索算法识别所述函数名称、所述函数参数以及输入输出接口;
其中,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤,包括:
根据所述函数名称、所述函数参数以及输入输出接口生成***函数和目标语言编译器文件;
根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块的步骤,还包括:
若接收到对所述***函数的第一修改信息,根据所述第一修改信息对所述***函数进行修改;
在接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口之后,根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型之前,所述方法还包括:
若接收到对函数名称、函数参数和/或输入输出接口的第二修改信息,根据所述第二修改信息对函数名称、函数参数和/或输入输出接口进行修改。
2.根据权利要求1所述的方法,其特征在于,所述获得目标模型的步骤,包括:
根据所述***函数和所述目标语言编译器文件,编译生成符合Simulink运行环境的脚本文件,获得目标模型。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在编译生成符合Simulink运行环境的脚本文件时,若检测到故障代码,显示报错信息。
4.一种代码封装装置,其特征在于,包括:
接收识别模块,用于接收C/C++语言代码,并识别C/C++语言代码的函数名称、函数参数以及输入输出接口;
处理模块,用于根据所述函数名称、所述函数参数以及输入输出接口生成符合Simulink标准格式的目标模块,获得目标模型;
其中,所述接收识别模块包括:
接收单元,用于接收以预设规则表示的C/C++语言代码的头文件中的主函数信息和初始函数信息;
识别单元,用于根据所述主函数信息和所述初始函数信息,基于搜索算法识别所述函数名称、所述函数参数以及输入输出接口;
其中,所述处理模块包括:
生成单元,用于根据所述函数名称、所述函数参数以及输入输出接口生成***函数和目标语言编译器文件;
所述处理模块还包括:
第一修改单元,用于若接收到对所述***函数的第一修改信息,根据所述第一修改信息对所述***函数进行修改;
第二修改单元,用于若接收到对函数名称、函数参数和/或输入输出接口的第二修改信息,根据所述第二修改信息对函数名称、函数参数和/或输入输出接口进行修改。
5.根据权利要求4所述的装置,其特征在于,所述处理模块包括:
获得单元,用于根据所述***函数和所述目标语言编译器文件,编译生成符合Simulink运行环境的脚本文件,获得目标模型。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
显示模块,用于在编译生成符合Simulink运行环境的脚本文件时,若检测到故障代码,显示报错信息。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的代码封装方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711045919.2A CN107797805B (zh) | 2017-10-31 | 2017-10-31 | 一种代码封装方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711045919.2A CN107797805B (zh) | 2017-10-31 | 2017-10-31 | 一种代码封装方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107797805A CN107797805A (zh) | 2018-03-13 |
CN107797805B true CN107797805B (zh) | 2020-11-13 |
Family
ID=61548504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711045919.2A Active CN107797805B (zh) | 2017-10-31 | 2017-10-31 | 一种代码封装方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107797805B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563448B (zh) * | 2018-04-19 | 2021-08-17 | 图灵人工智能研究院(南京)有限公司 | 程序文件的编译方法、***、计算机设备和存储介质 |
CN108681455B (zh) * | 2018-05-10 | 2021-12-28 | 成都我有科技有限责任公司 | 图形与代码的转换方法及装置 |
CN109190306A (zh) * | 2018-10-19 | 2019-01-11 | 北京经纬恒润科技有限公司 | 一种数据回灌仿真方法及装置 |
CN109710261A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | 一种将积木代码自动转化为编程代码的方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2275931A1 (en) * | 2009-07-10 | 2011-01-19 | Wolfgang Pree GmbH | Simulating real-time software components based on logical execution time |
CN102087610A (zh) * | 2009-12-08 | 2011-06-08 | 联创汽车电子有限公司 | 利用Simulink对定制硬件进行模型仿真及代码生成的方法 |
EP2626784A1 (en) * | 2012-02-09 | 2013-08-14 | MIMOON GmbH | Method and apparatus for automated MATLAB interfacing |
-
2017
- 2017-10-31 CN CN201711045919.2A patent/CN107797805B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2275931A1 (en) * | 2009-07-10 | 2011-01-19 | Wolfgang Pree GmbH | Simulating real-time software components based on logical execution time |
CN102087610A (zh) * | 2009-12-08 | 2011-06-08 | 联创汽车电子有限公司 | 利用Simulink对定制硬件进行模型仿真及代码生成的方法 |
EP2626784A1 (en) * | 2012-02-09 | 2013-08-14 | MIMOON GmbH | Method and apparatus for automated MATLAB interfacing |
Also Published As
Publication number | Publication date |
---|---|
CN107797805A (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN107797805B (zh) | 一种代码封装方法、装置及计算机可读存储介质 | |
EP3433732B1 (en) | Converting visual diagrams into code | |
US10942922B2 (en) | Generation of data flow from syntax tree | |
CN107291438B (zh) | 自动化脚本的生成方法、装置及电子设备 | |
CN110008113B (zh) | 一种测试方法、装置、电子设备 | |
US8752020B2 (en) | System and process for debugging object-oriented programming code leveraging runtime metadata | |
US8028276B1 (en) | Method and system for generating a test file | |
US20190129734A1 (en) | Data collection workflow extension | |
US8839197B2 (en) | Automated analysis of composite applications | |
CN110941427B (zh) | 代码生成方法及代码生成器 | |
CN108170425B (zh) | 一种程序代码的修改方法、修改装置及终端设备 | |
CN108469955B (zh) | 一种基于注解的Android注入框架实现方法 | |
CN111290778A (zh) | Ai模型的包装方法、平台及电子设备 | |
CN111414166A (zh) | 代码的生成方法、装置、设备及存储介质 | |
CN109241026B (zh) | 数据管理的方法、装置及*** | |
CN116860949A (zh) | 问答处理方法、装置、***、计算设备及计算机存储介质 | |
CN111158656A (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN110765010A (zh) | 基于Flink的可视化开发在线调试方法及装置 | |
WO2017181184A1 (en) | Method, apparatus, and computer-readable medium for performing functional testing of software | |
CN109408101A (zh) | 一种用于编程的代码开发维护方法及电子设备 | |
CN110908915A (zh) | 一种测试覆盖率的展示方法、装置及计算机*** | |
US8683439B2 (en) | System and process for debugging object-oriented programming code leveraging preprocessors | |
CN110633220A (zh) | 调试信息显示方法、装置、存储介质及电子设备 | |
CN110555185A (zh) | 基于pc客户端的页面定制方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |