首页> 外文期刊>Automated software engineering >Precise Call Graphs for C Programs with Function Pointers
【24h】

Precise Call Graphs for C Programs with Function Pointers

机译:具有函数指针的C程序的精确调用图

获取原文
获取原文并翻译 | 示例

摘要

The use of pointers presents serious problems for software productivity tools for software understanding, restructuring, and testing. Pointers enable indirect memory accesses through pointer dereferences, as well as indirect procedure calls (e.g., through function pointers in C). Such indirect accesses and calls can be disam-biguated with pointer analysis. In this paper we evaluate the precision of one specific pointer analysis (the FA pointer analysis by Zhang et al.) for the purposes of call graph construction for C programs with function pointers. The analysis is incorporated in a production-strength code-browsing tool from Siemens Corporate Research in which the program call graph is used as a primary tool for code understanding. The FA pointer analysis uses an inexpensive, almost-linear, flow- and context-insensitive algorithm. To measure analysis precision, we compare the call graph constructed by this analysis with the most precise call graph obtainable by a large category of existing pointer analyses. Surprisingly, for all our data programs the FA analysis achieves the best possible precision. This result indicates that for the purposes of call graph construction, inexpensive pointer analyses may provide precision comparable to the precision of expensive pointer analyses.
机译:指针的使用给软件生产力工具带来了严重的问题,这些工具无法理解,重组和测试软件。指针允许通过指针解除引用以及间接过程调用(例如,通过C中的函数指针)进行间接内存访问。此类间接访问和调用可以通过指针分析消除歧义。在本文中,我们评估了一种特定的指针分析(由Zhang等人进行的FA指针分析)的精度,目的是为了构造带有函数指针的C程序的调用图。该分析被并入了Siemens Corporate Research的生产强度代码浏览工具,该程序中的调用图用作了解代码的主要工具。 FA指针分析使用便宜的,几乎线性的,对流和上下文不敏感的算法。为了衡量分析的准确性,我们将通过这种分析构造的调用图与可以通过现有类别的大量指针分析获得的最精确的调用图进行比较。出乎意料的是,对于我们所有的数据程序,FA分析都能实现最佳的精度。该结果表明,出于调用图构造的目的,廉价的指针分析可以提供与昂贵的指针分析相当的精度。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号