No useful backtrace after uncaught exception in std::thread
Jonathan Wakely
jwakely.gcc@gmail.com
Tue Nov 15 20:33:00 GMT 2011
2011/11/15 Tobias Ringström:
>
> That's more like it. Is the std::thread behaviour a bug, or am I missing
> something? Though the C++11 standard seems to allow the stack to be unwound
> before std::terminate is called, it exceptionally unhelpful. I've search but
> not been able to find any explanation.
No, it's not a bug, but it could be improved.
What happens in std::thread is that we catch the exception (at which
point the stack has been unwound) then call std::terminate explicitly.
That was done to ensure we onform to the standard and terminate as
required.
Now that the compiler support noexcept we should use that instead and
not catch the exception, causing the runtime to call terminate without
unwinding the stack.
I'll make that change for 4.7.0
More information about the Gcc-help
mailing list