Incorrect unwind when throwing exceptions - possible cause?
Juraj Oršulić
juraj.orsulic@fer.hr
Thu Feb 3 13:40:28 GMT 2022
Sorry for replying privately by mistake.
Thank you so much Florian, I was not aware that libunwind is not the default
unwinder. That could be the key to this and looks like we're linking it probably
due to a 3rd party dependency.
Looks like I made a mistake by reducing our project to an exception
hello-world crashing minimum example instead of building one externally.
In fact, I did, but I saw that _Unwind_RaiseException is called directly in
__cxa_throw in libstdc++, so I assumed that is how it normally goes.
Now I see that gcc provides a built-in for this function.
On Thu, Feb 3, 2022 at 1:26 PM Florian Weimer <fweimer@redhat.com> wrote:
>
> * Juraj Oršulić:
>
> > I haven’t specified anything, so it’s using libunwind.so by default.
> > I have stepped through libunwind and observed the moment of curruption when it
> > prematurely commits the new rbp value.
>
> The default for GCC is its built-in unwinder. If you are using
> libunwind, you need to talk to the libunwind developers.
>
> Please keep posting to the list.
>
> Thanks,
> Florian
>
More information about the Gcc-help
mailing list