Opened 12 years ago
Closed 10 years ago
#4769 closed Bugs (fixed)
MinGW: std::terminate() called recursively in exception_ptr_test
Reported by: | Owned by: | Emil Dotchevski | |
---|---|---|---|
Milestone: | Boost 1.45.0 | Component: | exception |
Version: | Boost 1.44.0 | Severity: | Regression |
Keywords: | mingw terminate recursively | Cc: |
Description
exception_ptr_test fails (see here, link valid 2010/10/21) with what appears to be many calls to terminate:
Run [2010-10-21 22:46:51 UTC]: fail This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. terminate called after throwing an instance of 'boost::exception_detail::clone_impl<exc>terminate called recursively ' terminate called recursively terminate called recursively terminate called recursively terminate called recursively terminate called recursively EXIT STATUS: 3
Running it in gdb and breaking at std::terminate, I get:
(gdb) bt #0 std::terminate () at ../../../../gcc-4.4.0/libstdc++-v3/libsupc++/eh_terminate.cc:48 #1 0x00478f57 in __cxa_throw (obj=0x34780, tinfo=0x48c060, dest=0x412668 <~clone_impl>) at ../../../../gcc-4.4.0/libstdc++-v3/libsupc++/eh_throw.cc:83 #2 0x00411d9b in boost::throw_exception<exc> (e=@0xcafde0) at ../boost/throw_exception.hpp:61 #3 0x0041550b in boost::exception_detail::throw_exception_<exc> ( x=@0xcafe30, current_function=0x488754 "void thread_func()", file=0x488398 "..\\libs\\exception\\test\\exception_ptr_test.cpp", line=103) at ../boost/throw_exception.hpp:78 #4 0x004014b9 in thread_func () at ..\libs\exception\test\exception_ptr_test.cpp:103 #5 0x0041f143 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke (function_ptr=@0x252f18) at ../boost/function/function_template.hpp:112 #6 0x004266b5 in boost::function0<void>::operator() (this=0x252f14) at ../boost/function/function_template.hpp:1013 #7 0x004101ae in thread_handle::thread_wrapper (f=@0x252f14, ep=@0x252f24) at ..\libs\exception\test\exception_ptr_test.cpp:37 #8 0x0041d267 in boost::_bi::list2<boost::_bi::value<boost::function<void ()()> >, boost::_bi::value<boost::shared_ptr<boost::exception_detail::clone_base const> > >::operator()<void (*)(boost::function<void ()()> const&, boost::shared_ptr <boost::exception_detail::clone_base const>&), boost::_bi::list0> ( this=0x252f14, f=@0x252f10, a=@0xcaff27) at ../boost/bind/bind.hpp:313 #9 0x0041d44a in boost::_bi::bind_t<void, void (*)(boost::function<void ()()> const&, boost::shared_ptr<boost::exception_detail::clone_base const>&), boost::_bi::list2<boost::_bi::value<boost::function<void ()()> >, boost::_bi::value<boost ::shared_ptr<boost::exception_detail::clone_base const> > > >::operator() ( this=0x252f10) at ../boost/bind/bind_template.hpp:20 #10 0x0041da64 in boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(boost::function<void ()()> const&, boost::shared_ptr<boost::exception_detail::clone_base const>&), boost::_bi::list2<boost::_bi::value<boost::function<void ()()> >, boost::_bi::value<boost::shared_ptr<boost::exception_detail::clone_base const> > > > >::run (this=0x252ef0) at ../boost/thread/detail/thread.hpp:61 #11 0x00401b65 in thread_start_function (param=0x252ef0) at ..\libs\thread\src\win32\thread.cpp:168 #12 0x77c3a3b0 in msvcrt!_endthreadex () from C:\WINDOWS\system32\msvcrt.dll #13 0x7c80b729 in KERNEL32!GetModuleFileNameA () from C:\WINDOWS\system32\kernel32.dll #14 0x00000000 in ?? ()
These threads:
(gdb) info threads * 3 thread 944.0x1764 std::terminate () at ../../../../gcc-4.4.0/libstdc++-v3/libsupc++/eh_terminate.cc:48 2 thread 944.0x154c 0x6e946dbb in libgcc_s_dw2-1!_Unwind_Resume_or_Rethrow () from C:\Software\Open\lib\Qt\2010.05\mingw\bin\libgcc_s_dw2-1.dll 1 thread 944.0x13c8 0x7c90e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll
Change History (3)
comment:1 by , 12 years ago
Severity: | Showstopper → Regression |
---|
comment:2 by , 12 years ago
comment:3 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
I can't reproduce this on MinGW with GCC version 4.5.0. Maybe it is (was?) a bug in the compiler?