gpt4 book ai didi

c++ - 进程被杀死时如何获取.gcda文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:32:24 32 4
gpt4 key购买 nike

我有一个包含 -fprofile-arcs-ftest-coverage 的二进制构建。二进制文件由进程监视器运行,进程监视器将进程生成为子进程。然后,当我想要进程退出时,我必须通过进程监视器。它向进程发送一个 SIGKILL。我发现在这种情况下不会生成 .gcda 文件。我能做什么?

编辑:实际上进程监视器首先尝试让进程退出。但是,当用户发出停止进程的命令时,ProcessMonitor 库(在每个进程中使用)调用 _exit 而不是 exit。这是所有麻烦的根源。

最佳答案

这可能有效: http://nixcraft.com/coding-general/12544-gcov-g.html

总结:在程序中调用 __gcov_flush(),可能在信号处理程序中或在执行期间定期调用。

如果是 C++ 代码,请记住对函数进行 extern "C"声明。

还请记住使用某种预处理器 ifdef,以便程序在未使用分析构建时不会调用它。

关于c++ - 进程被杀死时如何获取.gcda文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4384518/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com