【发布时间】:2009-09-15 18:44:18
【问题描述】:
在阅读了Andreas Zeller的调试书后,我对Dynamic Slicing产生了兴趣。
目前我只找到了Java分析的相关工具。你知道这样的 C/C++ 工具吗?
【问题讨论】:
标签: c++ program-slicing
在阅读了Andreas Zeller的调试书后,我对Dynamic Slicing产生了兴趣。
目前我只找到了Java分析的相关工具。你知道这样的 C/C++ 工具吗?
【问题讨论】:
标签: c++ program-slicing
罗布以外的一点资料
Wisconsin Program-Slicing Tool 已演变成一个名为 CodeSurfer 的工具。好消息:它可以在商业上获得并得到支持,并且非常适合它的功能。坏消息(也许):它实际上并不会生成一个简化的程序来计算与您选择的相同的值,但它对于导航您尚未编写的源代码非常方便。
Frama-C 仅处理 C(在可预见的将来不处理 C++)。导航源代码很好,但不是很好,但它可以根据您指定的标准生成一个等效的更小的程序,如果原始程序是它可以自动分析的那种(没有递归,没有动态分配)。 Frama-C 是开源的,并且有一个邮件列表,如果您对它使用的技术感兴趣,欢迎您提出问题。
CodeSurfer 不会冒险生成等效程序而 Frama-C 只能对具有类似嵌入式限制的代码执行此操作的原因是,简而言之,这样做需要知道指针的值,这可能非常困难精确计算。
【讨论】:
在您引用的维基百科页面上列出了一个工具。它适用于 C,所以我想它可以适用于任何“C/C++”。
也适用于 C,并且在 Wikipedia 页面上也提到过:
【讨论】:
Giri 在 LLVM 编译器中实现动态向后切片,据我所知,这是构建可用、有效和线程的最新努力-aware 现代编译器中的动态切片器。
【讨论】: