필자는 평생 동안 여러 스레드를 가져오고 찢어 버리는 프로그램을 가지고 있습니다. 모든 것이 잠시 잘 작동하지만 결국에는 다음 코어 덤프 스택 추적을 얻습니다.시동시 코어 드릴링 향상시키기
#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