gpt4 book ai didi

c - Helgrind 在运行时停止程序

转载 作者:行者123 更新时间:2023-11-30 16:22:23 26 4
gpt4 key购买 nike

Helgrind 在运行时卡住。必须使用 CTRL+C (SIGINT) 才能退出运行。

我编写了一个可以正确执行的程序,如果以通常的方式运行而不使用 --tool=helgrind,valgrind 不会报告任何程序。但是当使用 helgrind 时,程序会在运行时停止。

我还没有发现任何导致 helgrind 出现这种行为的典型问题。有什么建议吗?我在使用 vgdb 时也找不到任何问题。

编辑:该程序利用信号量和 pthreads。

编辑:添加一堆fprintf输出使helgrind工作得很好。为什么呢?

最佳答案

找到了答案。

使用信号量的值作为条件变量非常慢。因此,由于 sem_post/sem_wait 是原子操作,而 helgrind 具有“较慢的检查”(非原子),因此我的程序更新信号量的速度比 helgrind 重新检查信号量要快。从而卡住了helgrind。因此,线程计数器或其他类型的条件变量解决了问题。

关于c - Helgrind 在运行时停止程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54454543/

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