运行时Helgrind冻结。 CTRL + C(SIGINT
)具有被施加到退出运行。
我写了正确执行,如果没有使用--tool=helgrind
运行在一个常规方式的valgrind没有报告任何程序的程序。但是,当helgrind用于在程序运行时停止。
我还没有发现,导致helgrind以这种方式运行任何typichal问题。有什么秘诀吗?我找不到使用vgdb
无论任何问题。
编辑:该项目是利用信号量和并行线程。
编辑:添加了一堆发helgrind工作就好fprintf
输出。但是为什么?
找到了答案。
使用信号量的值作为条件变量是很慢的。如此以来,sem_post / sem_wait是一个基本操作和helgrind有一个“慢查询”(非原子),那么我的程序更新信号灯的方式更快然后helgrind重新检查信号。因而冻结helgrind。因此,一个线程柜台或其他类型的条件变量的解决了这一问题。