-
Notifications
You must be signed in to change notification settings - Fork 59
Description
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