Dmi*_*kov 6 linux multithreading gdb
我在c ++中有一个测试应用程序,在其中启动了几个线程main(),然后main()永远沉睡.
其中一个线程正在做一些导致段错误的事情,并且生成了一个coredump(之前设置了ulimit -c unlimited).
我打开核心gdb并看到thread apply all bt或者info threads我只有一个线程(启动main()),这是不可能的,因为至少main()线程也应该运行.
问题是如何丢失其余的线程以及可能导致它的原因?
这个孤独的线程的回溯似乎没问题,其中没有什么奇怪的东西.
操作系统是Red Hat Enterprise 5.3,gdb-6.8.
事实证明这是默认 Red Hat Enterprise 5.3 中的内核错误,在更高的 Red Hat 版本(5.4)中修复了 -kernel-2.6.18-164.el5
1.110.1。RHSA-2009:1193:32 位系统上的重要安全性和错误修复更新,某些多线程应用程序的核心转储不包括所有线程信息。(BZ#505322)
https://bugzilla.redhat.com/show_bug.cgi?id=505322