Valgrind挂了。如何查看信号量导致的信号量?

时间:2016-10-20 12:01:57

标签: c++ valgrind

在某些时候,valgrind会挂起。 CPU消耗为0,没有任何反应。 valgrind进程处于状态usem(FreeBSD)。这是在我尝试的所有模式中启动固定时间后发生的:“默认模式”,DRD和Helgrind。

如何打破它并查看它现在所处的确切代码行? 如何打破它并看到它等待的信号量?

1 个答案:

答案 0 :(得分:0)

首先要尝试的是在valgrind下运行时使用gdb + vgdb来调试应用程序。有关详细信息,请参阅http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver

如果gdb + vgdb没有说明,您可能会尝试添加更多valgrind跟踪 (例如-v -v -v -d -d -d --trace-syscalls = yes --trace-signals = yes)并查看 如果这给出了线索​​。

最后,你可以直接在valgrind上使用gdb。