Skip to content

Question regarding ExcHndl and stack overflows #92

@Isopod

Description

@Isopod

Hi,

I've recently been trying to help out the GIMP project with some problems on Windows. I've learned that GIMP uses ExcHndl to produce stack traces automatically, but occasionally they get bug reports for crashes that don't leave any stack trace at all. I've recently been dealing with one of those issues (https://gitlab.gnome.org/GNOME/gimp/-/issues/13576) and it's difficult since I can't reproduce it locally and the affected users can't provide a stack trace.

I don't know all the details of how the structured exception handling machinery on Windows works under the hood and researching this would take quite a bit of time, so I figured it would be more efficient to just ask:

I've had this theory that those types of crashes might be caused by stack overflows as a result of infinite recursion. I suspect that in that case there would not even be enough stack space left to run the crash handler. At least I don't see how it would work, but again, I'm not familiar with the details. Could this be the case or is this just not how it works?

If the theory is correct, would it be possible to work around this somehow, e.g. by allocating a special stack just for exception handling, or running the exception handler in a different thread etc.? Do you have any other ideas why there might be no stack trace?

Thanks

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions