gpt4 book ai didi

c++ - 如何正确处理信号,以便 gperftools CPU 分析器仍然有效?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:34 25 4
gpt4 key购买 nike

我想分析我的守护程序,它会暂停主线程:

sigset_t signal_mask;
sigemptyset(&signal_mask);
sigaddset(&signal_mask, SIGTERM);
sigaddset(&signal_mask, SIGINT);

int sig;
sigwait(&signal_mask, &sig);

所有其他线程只是阻塞所有信号。据我所知,探查器使用 SIGPROF 信号进行操作。如果我使用这样的代码开始分析,输出的 .prof 文件是空的:

env CPUPROFILE=daemon.prof ./daemon

我应该如何正确处理主线程和其他线程中的信号以启用分析?或者可能是其他地方的问题?

最佳答案

All other threads simply block all signals.

您只需在所有线程(或您想要分析的线程)中解除阻塞 SIGPROF。我们只是在多线程守护进程中解决完全相同的问题。

关于c++ - 如何正确处理信号,以便 gperftools CPU 分析器仍然有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19582060/

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