如何获得陷入无限循环的C程序的代码覆盖率信息?

时间:2018-09-18 14:48:43

标签: c gcc clang code-coverage

我需要获取许多C程序的代码覆盖率信息。我只需要知道是否执行了每一行。但是,它们中的一些永远不会因无限循环而终止。最多的工具,例如例如gcov,llvm-cov,它们只有在程序结束后才能获取该程序的信息。 我为所有程序设置了时间限制。如果它的执行时间未达到限制时仍未结束,则其过程将被终止。但是,当其进程被终止时,将清除内存中存储的所有信息。因此,我无法获得这些程序的代码覆盖率信息。我该怎么办?

1 个答案:

答案 0 :(得分:0)

一种简单的解决方案是在程序内部添加一个小定时器计时器中断,该中断将在几秒钟的“不良行为”后引发异常,并导致程序正常终止。

以您似乎想要的临时方式进行搜索和探测时,只要发现错误就立即删除该hack,就完全可以对其进行“ hack”。