valgrind 在 thread_wrapper 中挂起

valgrind hangs in thread_wrapper

我正在尝试 运行 我在 valgrind 3.10.0 中的程序,但它似乎挂在 set_address_range_perms() 中。我得到的最后一个输出是

--69447:1:aspacem  allocated thread stack at 0x803c7c000 size 1064960
--69447:1:syswrap- run_a_thread_NORETURN(tid=2): pre-thread_wrapper
--69447:1:syswrap- thread_wrapper(tid=2): entry

知道如何缩小问题范围吗?

首先要尝试的是使用 gdb+vgdb 并连接到挂起的程序:在另一个 window 中,启动 gdb 然后在 gdb 中,执行 target remote |虚拟数据库 然后你可以使用各种 gdb 命令来查看发生了什么,例如信息线程;线程应用所有 bt; .... 看 http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver 获取更多关于 valgrind+gdb 的信息。

如果 valgrind gdbserver 没有反应,那么您将不得不直接附加到 valgrind,并调试 valgrind 内部。