No useful backtrace after uncaught exception in std::thread

NightStrike nightstrike@gmail.com
Wed Jan 9 06:29:00 GMT 2013


On Tue, Jan 8, 2013 at 11:16 AM, Tobias Ringström <tobias@ringis.se> wrote:
> On 01/08/2013 05:05 PM, Jonathan Wakely wrote:
>>
>> On 8 January 2013 13:28, Tobias Ringström <tobias@ringis.se> wrote:
>>>
>>> On 11/15/2011 09:14 PM, Jonathan Wakely wrote:
>>>>
>>>>
>>>>
>>>> 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
>>>
>>>
>>>
>>> Remember this from over a year ago?
>>>
>>> I just tried this with 4.7.2 on Fedora 17, and as far as I can tell, it
>>> behaves just like 4.6.  Did this change never happen?
>>
>>
>> I tried adding it, it didn't help. I don't remember why.
>
>
> I've just discovered that noexcept does (not so) funny things with
> backtraces.  I'll make another post shortly.  It may be the same thing.
>
> /Tobias
>

A bugzilla PR would probably help the issue not be lost.



More information about the Gcc-help mailing list