Platforms to show: All Mac Windows Linux Cross-Platform
The module CallDelegateCrashSafeMBS New in 23.0
module CallDelegateCrashSafeMBSType | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
module | Process | MBS Util Plugin | 23.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Example:
Try
System.DebugLog "Try the call..."
CallDelegateCrashSafeMBS AddressOf TestMethod
System.DebugLog "Call succeeded!"
Catch c As DelegateCrashExceptionMBS
System.DebugLog "Caught exception!"
System.DebugLog c.Message
End Try
We can catch the following conditions:
- Invalid pointer access
- Invalid instruction
- Floating point exception
- Wrong system call
- Broken pipe
- Bus error
We may crash ourselves on stack corruption and we print the stack trace to stderr for macOS and Linux for debugging.
If a crash is caught, there may be memory leaked as objects allocated in the called method are not freed. The call function can not be used recursively and only on one thread at the time.
- method CallDelegateCrashSafeMBS(m as DelegateCrashSafeMBS)
- property CallCounter as Integer
- property CrashCounter as Integer
- delegate DelegateCrashSafeMBS()
Some examples which use this module:
Blog Entries
- MBS Xojo Plugins, version 23.0pr5
- Crash Protection for Xojo methods
- MBS Xojo Plugins, version 22.6pr1
The items on this page are in the following plugins: MBS Util Plugin.
