C / C ++中的动态切片

时间:2009-09-15 18:44:18

标签: c++ program-slicing

在阅读了Andreas Zeller的调试书后,我开始对动态切片感兴趣(http://en.wikipedia.org/wiki/Program_slicing)。

目前我只找到了相关的Java分析工具。你知道这样的C / C ++工具吗?

3 个答案:

答案 0 :(得分:4)

除Rob之外的一些信息

  • 威斯康星程序切片工具已在一个名为CodeSurfer的工具中发展。好消息:它是商业上可用和支持的,并且它的功能很棒。坏消息(也许):它实际上并没有产生一个减少的程序来计算你选择的相同值,但它非常方便地导航你没有写过的源代码。

  • Frama-C只处理C(在可预见的未来没有C ++)。导航源代码很好,不是很好,但是可以为你指定的标准生成一个等价的小程序,如果原始程序是自动分析的那种(没有递归) ,没有动态分配)。 Frama-C是开源的,有一个邮件列表,如果您对它使用的技术感兴趣,欢迎您提出问题。

CodeSurfer没有冒险生成等效程序的原因,而Frama-C只能对具有类似嵌入式限制的代码执行此操作,简而言之,这样做需要知道指针的值,这可能是任意的困难精确计算。

答案 1 :(得分:3)

您引用的维基百科页面上列出了一个工具。它适用于C,所以我猜它可以用于任何“C / C ++”。

对于C,也在维基百科页面上提到:

答案 2 :(得分:0)

Giri在LLVM编译器中实现动态向后切片,据我所知,这是构建可用有效线程感知动态切片器。