我正在将 gcov 与 cmake 一起使用。所有标志都设置正确。.GCNO 文件已正确创建。但是,在执行从源文件生成的可执行文件时,情况有点复杂。可执行文件在 bash 脚本中运行。
让我创建一个示例场景,以便您可以给我准确的答案。
我有一个名为 MY_FILE.CC 的文件,它的可执行文件名为 EXECUTABLE_FILE 我使用 cmake 并为 gcov 设置了所有标志。我有一个名为 THE_SCRIPT.SH 的脚本,它是用“make test”运行的。此脚本运行 EXECUTABLE_FILE 文件。
所以这里的想法是 bash 脚本 (THE_SCRIPT.SH) 依次运行可执行文件 (EXECUTABLE_FILE) 并且这些 bash 脚本的运行不会创建 .GCDA 文件。当我直接/手动运行可执行文件时,会创建 .GCDA 文件。我相信 bash 脚本是在子 shell 中运行的,而父 shell 无法知道源的可执行文件是否已运行。有人可以确认这是否正是这种情况吗?如果不是,那么确切的问题是什么?如果是,那么解决这个问题的方法是什么?
非常感谢。