Page MenuHomeFreeBSD

libcxxrt: Fix diagnostics for derived classes
ClosedPublic

Authored by emaste on Wed, Jun 24, 3:23 PM.
Tags
None
Referenced Files
F163421089: D57822.diff
Thu, Jul 23, 1:52 AM
Unknown Object (File)
Wed, Jul 15, 3:12 PM
Unknown Object (File)
Wed, Jul 15, 7:27 AM
Unknown Object (File)
Wed, Jul 15, 7:27 AM
Unknown Object (File)
Wed, Jul 15, 2:56 AM
Unknown Object (File)
Sun, Jul 5, 11:38 PM
Unknown Object (File)
Sun, Jul 5, 11:34 PM
Unknown Object (File)
Sun, Jul 5, 11:32 PM
Subscribers

Details

Summary
In terminate_with_diagnostics the cast_to arguments were swapped, so it
always failed.  The diagnostic handler produced output like "Terminating
due to uncaught exception 0x24891e08000 of type std::runtime_error".
Now e->what() will actually be included in the output, e.g. "Terminating
due to uncaught exception 0x2bba49208000 'Model file doesn't exist' of
type std::runtime_error".

Event:          Halifax Hackathon 202606
Sponsored by:   The FreeBSD Foundation

Also to be upstreamed.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

emaste created this revision.

Hm, I remember something similar occurring when I was attempting to debug that std::ios ABI issue. This would also throw some exceptions during initialization, and it resulted in strange messages from libcxxrt. I didn't have the time then to investigate, but it could very well have been this issue.!

This revision is now accepted and ready to land.Wed, Jun 24, 5:01 PM
This revision was automatically updated to reflect the committed changes.

Please can you submit this upstream as well?