[发明专利]一种结构化诊断对象的自动化解析方法有效
申请号: | 201910468391.2 | 申请日: | 2019-05-31 |
公开(公告)号: | CN110162480B | 公开(公告)日: | 2023-02-24 |
发明(设计)人: | 曾令辉 | 申请(专利权)人: | 泛升云微电子(苏州)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京正联知识产权代理有限公司 32243 | 代理人: | 郭俊玲 |
地址: | 215000 江苏省苏州市昆山市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 诊断 对象 自动化 解析 方法 | ||
1.一种结构化诊断对象的自动化解析方法,其特征在于:包括如下步骤:
步骤1,定义诊断资源定义宏和诊断对象生成API;
步骤2,通过诊断资源定义宏自定义各个程序模块的结构化诊断信息对象,并添加在一个或多个特定的头文件H里;
步骤3,脚本读入诊断对象的资源描述文件,生成一个诊断对象ID与诊断数据结构名称的描述信息,并插入到被诊断可执行程序对应的诊断数据库文件;
所述步骤3中,具体地,python 脚本读入H 文件,根据DIAG_PAYLOAD_STRUCT_DEF子串进行正则化匹配,得到每个行为以“DIAG_PAYLOAD_STRUCT_DEF”开头的字符串,建立所有PAYLOAD_ID 与 PAYLOAD_STRUCT_NAME 的映射关系即每行一个对象,最后重定向为一个诊断数据库文件DIAG_payload_object_map.db,此数据库文件供诊断工具进行结构化解析提供信息检索;
步骤4,通过clang 编译器及其附带的插件对诊断对象的结构体头文件进行语法分析,提取结构体信息,并插入到被诊断可执行程序对应的诊断数据库文件;
步骤5,被诊断程序运行时,调用步骤一中的诊断对象生成API,根据指示的帧格式进行打包,输出到诊断工具;
步骤6,诊断工具开启时导入被诊断可执行程序的诊断数据库文件,当接收到一个需要结构化解析的诊断对象时,提取诊断对象的诊断ID和诊断对象的二进制内存,根据诊断对象ID 从诊断数据库中索引找到该诊断对象的结构化描述,根据结构化描述信息来格式化诊断对象的二进制内存。
2.根据权利要求1所述的一种结构化诊断对象的自动化解析方法,其特征在于:所述步骤1中,所述诊断资源定义宏为:
DIAG_PAYLOAD_STRUCT_DEF(PAYLOAD_ID,PAYLOAD_STRUCT_NAME)
其中参数说明如下:
PYALOAD_ID:一个无符号整型ID,是应用程序内唯一的ID,指代将要解析的结构化诊断payload的身份;
PAYLOAD_STRUCT_NAME:与PAYLOAD_ID 对应的结构体名称字符串。
3.根据权利要求1所述的一种结构化诊断对象的自动化解析方法,其特征在于:所述步骤1中,所述诊断对象生成API:
DIAG_PAYLOAD_DUMP(PAYLOAD_ID,MOD_ID,FILTER_MASK,Ppayload,PAYLOAD_SZ)
该函数定义了一个诊断API,用该API 把要结构化解析的数据结构对象打包成一个诊断帧,其中参数说明如下:
PYALOAD_ID:一个无符号整型ID,是应用程序内唯一的ID,指代将要解析的结构化诊断payload的身份;
MOD_ID:标志程序模块的ID;
FILTER_MASK:用于诊断过滤的一个32bit整型,由程序开发者制定该诊断item的过滤类型;
Ppayload:指向结构化对象的内存指针;
PAYLOAD_SZ:Ppayload指向的结构化对象的内存大小,单位为字节。
4.根据权利要求1所述的一种结构化诊断对象的自动化解析方法,其特征在于:所述步骤4中,具体地,创建一个用以提取诊断数据结构的空白C文件,在C文件里包含所有诊断数据结构定义所需的其他头文件,编写开源编译器前端软件clang的编译脚本,打开“-fsyntax-only”编译flag,编译clang example目录下的PrintFunctionNames为库文件,用编译脚本load这个库文件,例如,CFLAGS += -fsyntax-only–loadPrintFunctionNames.so–plugin pint-fns,用该编译选项来编译用于提取数据结构的C文件,可以生成一个StructXmldef.xml 文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于泛升云微电子(苏州)有限公司,未经泛升云微电子(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910468391.2/1.html,转载请声明来源钻瓜专利网。