C-Reduce, 一款 C 和 C++ 程序减少器
C-Reduce 是一款工具,它可以处理具有大量内存分配和释放的大型 C 或 C++ 程序。 有利的属性(例如触发编译器错误) 自动生成一个大小远小的 C/C++ 程序,具有相同的功能 它是为那些发现和报告问题的人而设计的。 编译器和其他处理 C/C++ 代码的工具中的错误。
请参阅 INSTALL.md。
如果设置为使用多个核心, C-Reduce 可能会导致 /tmp 中的空间泄露。这是因为有时 C-Reduce 会在并行计算的结果表明某个编译器调用不再有用时杀死该调用。如果编译器在被杀死时在 /tmp 中留下文件, C-Reduce 没有办法发现和删除这些文件。如果临时文件空间有限,您需要不时手动进行此操作。泄露通常是非常缓慢的。如果需要完全避免此问题,可以在单个核心上运行 C-Reduce (使用 --n 1) , 在这种情况下, C-Reduce 永远不会杀死正在运行的编译器实例。或者,如 -pipe (由 GCC 支持) 这样的命令行选项可以完全抑制临时文件的创建。另一种可能性是在调用 C-Reduce 之前将 TMPDIR 环境变量设置为类似于 /tmp/creduce-stuff 的值 - 如果您调用的工具尊重此变量。
每次执行有趣性测试时,都会在一个新的临时目录中创建一个包含正在压缩的文件的副本。如果您的有趣性测试需要访问其他文件,则应将它们复制到当前工作目录中,或者使用绝对路径来引用它们。
暂无开放 Issues,或尚未同步最近议题。