我有一个等待futex的进程:
# strace -p 5538
Process 5538 attached - interrupt to quit
futex(0x7f86c9ed6a0c, FUTEX_WAIT, 20, NULL
我怎样才能最好地调试这种情况?我可以确定谁持有futex吗?有没有类似于ipcs和ipcrm的工具,但对于futexes?
答案 0 :(得分:0)
我对一段c ++代码有同样的问题。运行ubuntu 12.10 64bit。它看起来像2007年的类似问题,其中libc是错误的(可能仍然是?)。
我启动了一个在系统调用中运行traceroute的pthread。系统前后的Printf表示操作系统挂起系统调用,没有执行traceroute。
我不确定我的linux是否因为ubuntu更新而再次被破坏,或者它是否是与libc相关的错误。由于很多应用程序似乎都有“类似”的问题,我认为它存在于用户空间的某个地方。
我的c ++代码在32位系统甚至64位osx上运行完美,所以我假设ubuntu 12.10 + 64位libc组合已经坏了。