【发布时间】:2018-09-18 14:48:43
【问题描述】:
我需要获取大量 C 程序的代码覆盖率信息。我只需要知道每一行是否被执行。但是,其中一些永远不会因为无限循环而结束。大多数工具,例如像gcov,llvm-cov,只有在程序结束后才能获取程序的信息。 我为所有程序设置了时间限制。如果它的执行时间超过限制时它没有结束,它的进程将被杀死。但是,当它的进程被杀死时,存储在内存中的所有信息都会被清除。所以我无法获得这些程序的代码覆盖率信息。我该怎么做?
【问题讨论】:
-
如果你用 Ctrl+C 打断会发生什么?
-
转储信息的工具可能隐含在程序末尾,不是吗?你能明确地做到这一点吗?然后你可以在第一次做无限循环时转储,最后。
-
如果我用Crtl+C打断它,所有存储在内存中的信息都会丢失。所以我什么也得不到。
-
是的,我使用像 llvm-cov 和 gcov 这样的工具。他们俩似乎都在程序结束时转储了信息。而且我不知道我是否可以明确地做到这一点。
标签: c gcc clang code-coverage