我有一个程序可以在整个生命周期中调用并关闭多个线程。一切都很好,但最终,我得到以下核心转储堆栈跟踪。提升线程在启动时取芯
#0 0x009887a2 in _dl_sysinfo_int80() from /lib/ld-linux.so.2
#1 0x007617a5 in raise() from /lib/tls/libc.so.6
#2 0x00763209 in abort() from /lib/tls/libc.so.6
#3 0x003ec1bb in __gnu_cxx::__verbose_terminate_handler() from /usr/lib/libstdc++.so.6
#4 0x003e9ed1 in __cxa_call_unexpected() from /usr/lib/libstdc++.so.6
#5 0x003e9f06 in std::terminate() from /usr/lib/libstdc++.so.6
#6 0x003ea04f in __cxa_throw() from /usr/lib/libstdc++.so.6
#7 0x00d5562b in boost::thread::start_thread() from /h/Program/bin/../lib/libboost_thread-gcc34-mt-1_39.so.1.39.0
起初,我被泄露的线程,并推断核心是由于目前打线程数的一些最大极限,但现在看来,即使我不出现此问题。作为参考,在上面的核心中,有13个活动线程正在执行。
我做了一些搜索,试图找出为什么start_thread会核心,但我没有遇到任何东西。有人有主意吗?
单步执行调试器中的代码? – jalf 2010-01-21 13:41:13