Hey! We’ve been experimenting with adding optional crashing handling into our plugins over the past few days. It appears from reading older posts on the forum that you shouldn’t set application crash handlers on plugins as to not block any handlers from the DAW.
On Mac we’ve found we can set the handlers, and then re-raise the exceptions and they’ll still be caught by the host (or at least Ableton) – because we’re a little nervous we’re thinking to keep this off by default, but add a preference to enable it for users who reach out having issues. Seems windows is a different story so we haven’t dialed that in completely yet.
Just wondering if others are using these crash handler callbacks inside of their plugins and if so how they’re going? We’ve got some crashes reported from users we’ve not been able to reproduce even after trying to many hours.
Thanks!
2 Likes
I’ve found it is better to let the DAW handle crashes and then look at the crash reports.
On macOS, they all end up in ~/Library/Logs/DiagnosticReports. It’s fairly easy to scan through them, search for your plugin bundle id in the crashed thread, and if it’s there, then you’ll have a callstack to go from.
It’s not quite as easy on Windows, but Cubase and Ableton to store crash dumps in a standard location. Also a little harder to parse since they aren’t text like on macOS. But still worth the effort.
4 Likes
Anecdotally, I know that some people do use crash handlers in their plugins, which does seem to allow them to successfully collect crash reports, but I’m not sure if this interferes with any host-side handling.
I really like this idea – do you know if there any equivalence for this on windows? such a simple and elegant way to do that!
edit: derp nvm you said the windows side!
Also for both platforms, you need to store the symbols and then use the appropriate tools to “symbolicate” the dumps, so instead of random addresses, you actually get the class and function-names.
Windows dmp files are a LOT larger than the macOS text-files, but they also contain a lot more contextual information, like register state, etc.
We compress both (macOS txt and Windows dmp) files before upload, and they usually come out to only around 10-20% of their uncompressed size, which makes the uploads a LOT faster.
We are investigating if we can detect and upload crash dumps from FL Studio, because for our target audience, it’s the most popular host.
2 Likes