[发明专利]在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备在审
| 申请号: | 202110939851.2 | 申请日: | 2016-11-21 |
| 公开(公告)号: | CN113704097A | 公开(公告)日: | 2021-11-26 |
| 发明(设计)人: | A.克里恩 | 申请(专利权)人: | 英特尔公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 申屠伟进;周学斌 |
| 地址: | 美国加利*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 处理器 追踪 日志 使用 编译器 类型 信息 进行 数据流 分析 方法 设备 | ||
1.一种用于计算的设备,所述计算包含调试软件程序,所述设备包括:
存储器分析模块,其要由计算机处理器操作以:
获得从所述软件程序编译的编译的软件程序和调试信息;
接收所述编译的软件程序中的存储器损坏的标识;
获得具有所述编译的软件程序的基本块列表的运行时间程序控制流追踪;
分解或引起分解所述基本块列表以识别一组存储指令;
在所述调试信息中识别所述组存储指令中的存储指令的和所述存储器损坏的数据类型或数据类型结构;
确定具有所述存储器损坏的所述数据类型或数据类型结构的候选存储指令,并且获得将所述候选存储指令链接到所述软件程序的部分的至少一个链接;以及
返回所述候选存储指令和所述链接。
2.如权利要求1所述的设备,其中在所述软件程序编译期间准备所述调试信息,并且其中所述调试信息包括所述基本块列表中基本块的定义、所述基本块的所述数据类型或数据类型结构以及将所述基本块的指令地址映射到所述软件程序的所述部分的链接。
3.如权利要求1所述的设备,其中分解或引起分解所述基本块列表以识别所述组存储指令是通过代码分解器模块,并且其中所述存储器分析模块进一步接收包括所述存储器损坏的输入寄存器的崩溃日志,并且其中所述存储器分析模块进一步用所述代码分解器模块在所述运行时间程序控制流追踪中从所述存储器损坏往回搜索或引起往回搜索以识别加载所述存储器损坏的所述输入寄存器并且具有所述输入寄存器的所述数据类型或数据类型结构的所述组存储指令中的至少一个存储指令,并将所述至少一个存储指令识别为所述候选存储指令。
4.如权利要求1所述的设备,其中返回所述候选存储指令和所述链接包括对于用户显示所述候选存储指令和所述链接。
5.如权利要求1所述的设备,其中返回所述候选存储指令和所述链接包括将所述候选存储指令和所述链接传递到插装模块,所述插装模块要将所述软件程序插装以识别将来调试信息中的所述候选存储指令。
6.如权利要求1所述的设备,其中在执行所述编译的软件程序期间从处理器追踪模块获得所述运行时间程序控制流追踪,所述执行产生所述存储器损坏。
7.如权利要求6所述的设备,其中所述处理器追踪模块是基于硬件的。
8.如权利要求6所述的设备,其中所述编译的软件程序的所述执行是通过多个中央处理单元,并且所述运行时间程序控制流追踪包括来自所述多个中央处理单元的数据。
9.如权利要求1至8中任一项所述的设备,其中所述基本块列表中的每个基本块包括软件指令,其没有分支入,不同于进入所述软件指令,并且没有分支出,不同于退出所述软件指令,并且所述基本块是所述运行时间程序控制流追踪中的节点,并且其中所述存储指令将值、向量、矩阵或变量记录到所述计算机中的存储器位置。
10.一种用于调试软件程序的方法,包括:
在包括处理器和存储器的计算装置中,
获得从所述软件程序编译的编译的软件程序和调试信息;
接收所述编译的软件程序中的存储器损坏的标识;
获得具有所述编译的软件程序的基本块列表的运行时间程序控制流追踪;
分解或引起分解所述基本块列表以识别一组存储指令;
在所述调试信息中识别所述组存储指令中的存储指令的和所述存储器损坏的数据类型或数据类型结构;
确定具有所述存储器损坏的所述数据类型或数据类型结构的候选存储指令,并且获得将所述候选存储指令链接到所述软件程序的部分的至少一个链接;以及
返回所述候选存储指令和所述链接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110939851.2/1.html,转载请声明来源钻瓜专利网。





