You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enigma segfaults on certain level input, e.g. objects that destroy themselves on their own actions (like opals) or callback functions.
It is extremely complicated (maybe impossible) to catch all possible ways levels can cause segfaults. However, we should at least try.
segvcatch is a cross-platform library that transforms SIGSEGV and other signals into exceptions: https://github.com/Plaristote/segvcatch
The idea would be to just show a meaningful error message, in the case of SIGSEGV with a hint to safeaction, and unconditionally quit afterwards (do not try to recover -- repair the faulty level code instead).
The text was updated successfully, but these errors were encountered:
Hi,
maybe "Frogger" is a suitable test level. It is broken right now, and it is broken due to using action instead of safeaction on a hidden trigger, deleting the very boulder that just triggered the trigger. This might not be best example however, because it does not cause a segfault (at least not for me), and might actually be a regular bug in the code instead.
Here is another idea (just writing this down as a memo to myself, actually): Introduce a flag "i-am-active-please-dont-delete-me" high in the object hierarchy, and add a check on this flag in the destructor.
Enigma segfaults on certain level input, e.g. objects that destroy themselves on their own actions (like opals) or callback functions.
It is extremely complicated (maybe impossible) to catch all possible ways levels can cause segfaults. However, we should at least try.
segvcatch is a cross-platform library that transforms SIGSEGV and other signals into exceptions:
https://github.com/Plaristote/segvcatch
The idea would be to just show a meaningful error message, in the case of SIGSEGV with a hint to safeaction, and unconditionally quit afterwards (do not try to recover -- repair the faulty level code instead).
The text was updated successfully, but these errors were encountered: