[发明专利]错误代码定位方法、装置、存储介质以及电子设备在审
| 申请号: | 202111358194.9 | 申请日: | 2021-11-16 |
| 公开(公告)号: | CN114047923A | 公开(公告)日: | 2022-02-15 |
| 发明(设计)人: | 吴世伟;韦保山;刘真 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/448 |
| 代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 张桂杰 |
| 地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 错误代码 定位 方法 装置 存储 介质 以及 电子设备 | ||
1.一种错误代码定位方法,其特征在于,包括:
将编程语言的源代码编译为机器语言的可执行文件;
在所述可执行文件出现运行时错误时,通过报错函数输出异常信息;
响应于所述异常信息,获取所述报错函数的调用栈;
根据所述调用栈,确定所述源代码的错误代码的位置信息。
2.根据权利要求1所述的错误代码定位方法,其特征在于,所述根据所述调用栈,确定所述源代码的错误代码的位置信息,包括:
根据所述调用栈中的调用返回地址,确定发生错误的编译代码,其中,所述编译代码为将所述源代码编译为所述可执行文件时的中间代码;
基于所述发生错误的编译代码,确定所述源代码的错误代码的位置信息。
3.根据权利要求2所述的错误代码定位方法,其特征在于,所述基于所述发生错误的编译代码,确定所述源代码的错误代码的位置信息,包括:
基于所述发生错误的编译代码,结合映射关系,确定所述源代码对应的错误代码的位置信息;
其中,所述映射关系为在所述编译器的编译过程中记录到的所述源代码的位置信息与该源代码对应的编译代码的位置信息的对应关系。
4.根据权利要求1所述的错误代码定位方法,其特征在于,所述将编程语言的源代码编译为机器语言的可执行文件,包括:
获取第一编程语言的源代码;
对所述源代码进行解析,获得所述源代码对应的变量信息和依赖信息,其中,所述依赖信息中包含多个解析对象之间的依赖关系,所述解析对象包括函数和/或类;
根据所述变量信息和所述依赖信息,将所述依赖信息中各个解析对象对应的抽象语法树转换成中间表示,其中,所述中间表示包含所述抽象语法树中各节点的类型信息;
根据所述中间表示生成第二编程语言的编译代码;
根据所述编译代码生成所述机器语言的可执行文件。
5.根据权利要求4所述的错误代码定位方法,其特征在于,所述根据所述编译代码生成所述机器语言的可执行文件,包括:
调用所述第二编程语言对应的编译器对所述编译代码进行编译,获得所述编译代码对应的动态库;
对所述动态库和所述编译代码对应的函数表进行封装,获得所述可执行文件,其中,所述可执行文件基于所述可执行文件对应的入口函数被调用。
6.根据权利要求4所述的错误代码定位方法,其特征在于,所述对所述源代码进行解析,确定所述源代码对应的变量信息和依赖信息,包括:
对所述源代码中的变量进行解析,获得所述源代码中的全局变量和局部变量,以获得所述变量信息;
针对所述源代码中的每一解析对象,根据所述解析对象对应的抽象语法树,确定所述解析对象的依赖信息。
7.根据权利要求6所述的错误代码定位方法,其特征在于,所述根据所述解析对象对应的抽象语法树,确定所述解析对象的依赖信息,包括:
根据目标对象对应的抽象语法树,确定所述目标对象是否存在依赖的依赖对象,其中,所述目标对象初始为所述解析对象;
若存在所述依赖对象,针对所述依赖对象,在获取到的所述依赖对象所属的目标代码文件不是所述源代码文件的情况下,对所述目标代码文件中的变量进行解析,获得所述目标代码文件中的全局变量和局部变量,以获得所述目标代码文件对应的变量信息,并将所述依赖对象作为新的目标对象,重新根据所述目标对象对应的抽象语法树,确定所述目标对象是否存在依赖的依赖对象的步骤,直至不存在目标对象对应的依赖对象;
根据所述解析对象确定出的各个目标对象以及该目标对象的依赖对象,生成所述解析对象的依赖信息。
8.一种错误代码定位装置,其特征在于,包括:
编译模块,配置为将编程语言的源代码编译为机器语言的可执行文件;
报错模块,配置为在所述可执行文件出现运行时错误时,通过报错函数输出异常信息;
获取模块,配置为响应于所述异常信息,获取所述报错函数的调用栈;
确定模块,配置为根据所述调用栈,确定所述源代码的错误代码的位置信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111358194.9/1.html,转载请声明来源钻瓜专利网。





