运行时Helgrind停止程序

问题描述 投票:0回答:1

运行时Helgrind冻结。 CTRL + C(SIGINT)具有被施加到退出运行。

我写了正确执行,如果没有使用--tool=helgrind运行在一个常规方式的valgrind没有报告任何程序的程序。但是,当helgrind用于在程序运行时停止。

我还没有发现,导致helgrind以这种方式运行任何typichal问题。有什么秘诀吗?我找不到使用vgdb无论任何问题。

编辑:该项目是利用信号量和并行线程。

编辑:添加了一堆发helgrind工作就好fprintf输出。但是为什么?

c pthreads valgrind
1个回答
0
投票

找到了答案。

使用信号量的值作为条件变量是很慢的。如此以来,sem_post / sem_wait是一个基本操作和helgrind有一个“慢查询”(非原子),那么我的程序更新信号灯的方式更快然后helgrind重新检查信号。因而冻结helgrind。因此,一个线程柜台或其他类型的条件变量的解决了这一问题。

© www.soinside.com 2019 - 2024. All rights reserved.