用于实现观察点的方法和系统技术方案

技术编号:2829830 阅读:175 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用于实现在计算机程序的调试中使用的观察点的方法和系统,该方法包括:在该程序的编译阶段,通过数据流分析生成对该程序中各变量的访问位置信息;以及在该程序的调试阶段,根据对用户指定的程序变量的所述访问位置信息实现对所述程序变量的观察点。优选地,所述读访问位置集合和写访问位置集合是从程序变量的DU链或UD链生成的。优选地,所述实现步骤通过在所述读访问位置集合和写访问位置集合中的每个访问位置处设置断点、并将该断点标记为绑定到所述指定的程序变量来设置观察点并通过在被标记为绑定到指定的程序变量的断点被命中时触发观察点。

【技术实现步骤摘要】

本专利技术一般涉及计算机领域,具体涉及计算机程序的调试技术,更具体地涉及一种用于实现计算机程序的调试中所使用的观察点(watchpoint) 的方法和系统。
技术介绍
众所周知,调试是软件开发中的一个重要阶段.在该阶段中,开发人 员要花费大量时间并使用各种调试方法和技术以发现程序故障的根源并改 正它们.观察点(watchpoint)是调试过程中所使用的关键技术之一.观 察点是当被调试程序的地址空间的指定部分被访问时呈现给调试者的通 知.观察点观察,,^f皮调试程序的存储空间中的一地址范围,并在发生访 问该地址范围的任何企图时被触发,即停止被调试程序.开发人员使用观 察点来监视对程序中的指定变量或表达式的访问,包括读访问和写访问, 以发现是否有任何非预期的情况发生.它可以暴露开发过程中的很多严重 的编程4晉误.例如,对程序变量的非预期的访问,以及与时序(timing) 相关的程序错误,如异步访问、多线程访问中的程序错误等.在当前的调试器中已存在对某些种类的观察点的支持.然而,各现有 技术都存在一些缺点.第一种观察点实现基于由处理器提供的硬件设施.这种实现的一种最 直接方式是在处理器中本文档来自技高网...

【技术保护点】
一种用于实现在计算机程序的调试中使用的观察点的方法,该方法包括以下步骤:在该程序的编译阶段,通过数据流分析生成对该程序中各变量的访问位置信息;以及在该程序的调试阶段,根据对用户指定的程序变量的所述访问位置信息实现对所述程序变 量的观察点。

【技术特征摘要】
1.一种用于实现在计算机程序的调试中使用的观察点的方法,该方法包括以下步骤在该程序的编译阶段,通过数据流分析生成对该程序中各变量的访问位置信息;以及在该程序的调试阶段,根据对用户指定的程序变量的所述访问位置信息实现对所述程序变量的观察点。2. 根据权利要求1的方法,其中对程序变量的所述访问位置 信息包括对该程序变量的访问位置集合,且所述实现步骤包括在 该程序变量的访问位置集合的每 一 访问位置处设置断点.3. 根据权利要求2的方法,其中所述访问位置集合包括读访 问位置集合和写访问位置集合.4. 根据权利要求3的方法,其中所述读访问位置集合和写访 问位置集合是从程序变量的定义使用链或使用定义链生成的.5. 根据权利要求4的方法,其中所述生成步骤包括 将该程序的每个变量的、中间表示的定义使用链或使用定义链转换为该变量的、中间表示的读访问指令集合和写访问指令集合; 以及在代码生成阶段,将所述读访问指令集合和写访问指令集合 更新为相应的二进制的读访问位置集合和写访问位置集合.6. 根据权利要求5的方法,其中所述生成步骤还包括将所述中间表示的读访问指令集合和写访问指令集合写入符 号表.7. 根据权利要求5的方法,其中所述生成步骤还包括将所述二进制的读访问位置集合和写访问位置集合写入该程 序的二进制代码文件.8. 根据权利要求6的方法,其中将所述中间表示的读访问指 令集合和写访问指令集合写入符号表的所述步骤将所述读访问指 令集合和写访问指令集合作为所述符号表中相应变量条目的扩展 写入所述符号表.9. 根据权利要求5的方法,其中在该程序的调试阶段、根据 对用户指定的程序变量的所述访问位置信息实现对所述程序变量 的观察点的步骤包括读取所述指定的程序变量的所述二进制的读访问位置集合和 写访问位置集合;在所述读访问位置集合和写访问位置集合中的每个访问位置 处设置断点,并将该断点标记为绑定到所述指定的程序变量;当调试器检测到断点命中时,判断该断点是否被标记为绑定 到任何指定的程序变量;以及当该判断为是时,通知用户该指定的程序变量上的观察点被 命中.10. —种用于通过编译器从源程序生成带有可用于调试的该 程序中各变量的访问位置信息的、该程序的二进制代码文件的方 法,包括以下步骤根据对该程序的数据流分析的结果生成该程序中每个变量 的、中间表示的读访问指令集合和写访问指令集合;在代码生成阶段,将所述读访问指令集合和写访问指令集合 更新为相应的二进制的读访问位置集合和写访问位置集合;以及将所述二进制的读访问位置集合和写访问位置集合写入该程 序的二进制代码文件。11. 一种用于通过调试器在由权利要求10的方法生成的程序 的二进制代码文件中设置和触发观察点的方法,包括以下步骤读取用户指定的程序变量的所述二进制的读访问位置集合和 写访问位置集合;在所述读访问位置集合和写访问位置集合中的每个访问位置处设置断点,并将该断点标记为绑定到所述指定的程序变量;当调试器检测到断点命中时,判断该断点是否被标记为绑定到任何指定的程序变量;以及当该判断为是时,通知用户该指定的程序变量上的观察点被命中.12. —种用于实现在计算机程序的调试中使用的观察点的系 统,该系统包括在编译器端的生成装置,用于通过数据流分析生成对该程序 中各...

【专利技术属性】
技术研发人员:周武任党恩彭红波孙红东
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1