[发明专利]程序编译方法及装置、电子设备和存储介质在审
申请号: | 202010623574.X | 申请日: | 2020-06-30 |
公开(公告)号: | CN111767058A | 公开(公告)日: | 2020-10-13 |
发明(设计)人: | 池沐聪;赵伟 | 申请(专利权)人: | 上海商汤智能科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
地址: | 200233 上海市徐*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 编译 方法 装置 电子设备 存储 介质 | ||
1.一种程序编译方法,其特征在于,包括:
获取目标程序的源代码;
将所述目标程序的源代码转换为第一表示,并在所述第一表示中添加对目标信息统计函数的调用,得到第二表示;
将所述第二表示编译为所述目标程序的可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述目标程序包括目标函数;
所述在所述第一表示中添加对目标信息统计函数的调用,得到第二表示,包括:
在所述第一表示中与所述目标函数的设定位置对应的第一节点处添加所述目标信息统计函数对应的第二节点,得到第二表示。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述第一表示中添加对目标信息统计函数的调用,得到第二表示之前,还包括:
在所述第一表示中查找所述目标函数。
4.根据权利要求2或3所述的方法,其特征在于,所述目标函数的设定位置包括:所述目标函数的开始位置和/或结束位置。
5.根据权利要求1或4任意一项所述的方法,其特征在于,所述方法还包括:
创建信息统计函数库,所述信息统计函数库包括多个信息统计函数。
6.根据权利要求1或5任意一项所述的方法,其特征在于,所述方法还包括:
在运行所述可执行文件的过程中,调用所述目标信息统计函数对所述目标程序进行运行信息统计,得到所述目标程序的运行信息。
7.根据权利要求6所述的方法,其特征在于,所述调用所述目标信息统计函数对所述目标程序进行信息统计,包括:
基于所述目标程序的环境变量所指示的路径,调用所述目标信息统计函数。
8.根据权利要求7所述的方法,其特征在于,所述目标信息统计函数具有多个不同版本,不同版本具有不同路径;
所述基于所述目标程序的环境变量所指示的路径,调用所述目标信息统计函数,包括:
基于所述目标程序的环境变量所指示的路径,调用所述目标信息统计函数的目标版本。
9.根据权利要求1至8任意一项所述的方法,其特征在于,所述方法还包括:
在所述可执行文件的运行过程中,异步地存储所述目标程序的运行信息。
10.根据权利要求6至9任意一项所述的方法,其特征在于,所述运行信息包括以下至少一项信息:
函数签名、进程信息、函数调用开始时刻、函数调用结束时刻、函数执行花费时间、函数执行状态。
11.一种程序编译装置,其特征在于,包括:
获取模块,用于获取目标程序的源代码;
转换模块,用于将所述目标程序的源代码转换为第一表示,并在所述第一表示中添加对目标信息统计函数的调用,得到第二表示;
编译模块,用于将所述第二表示编译为所述目标程序的可执行文件。
12.根据权利要求11所述的装置,其特征在于,所述目标程序包括目标函数;所述转换模块,用于在所述第一表示中与所述目标函数的设定位置对应的第一节点处添加所述目标信息统计函数对应的第二节点,得到第二表示。
13.根据权利要求11或12所述的装置,其特征在于,所述转换模块,还用于在所述第一表示中查找所述目标函数。
14.根据权利要求12或13所述的装置,其特征在于,所述目标函数的设定位置包括:所述目标函数的开始位置和/或结束位置。
15.根据权利要求11或14任意一项所述的装置,其特征在于,所述装置还包括:
创建模块,用于创建信息统计函数库,所述信息统计函数库包括多个信息统计函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海商汤智能科技有限公司,未经上海商汤智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010623574.X/1.html,转载请声明来源钻瓜专利网。