So, today, I did something better. Somebody on Keen:Modding suggested that Abiathar generate an error report that could be sent to me when something bad happens. This is already done when the entire program crashes, but it would likely be far more helpful here, since I have never actually seen the program crash, nor has anybody reported it. I added a lot of things to that exception handler to gather details about the environment and write it to an error file if the user so chooses. The report consists of the following sections:
- Stage of dependency file opening at which the exception was thrown
- Name, size, and MD5 of all files in the working directory
- Exception message, source, and stack trace (and those of the inner exception if applicable)
- Metadata of all extensions installed
- Serialization of the core entry in the dependency file
The stage information is gathered by setting an informational string value before entering a new section of the loader, which obviously stops updating if an exception happens. The MD5 calculation is skipped if the file is already open (or if it is Abiathar).
This scheme generates very nice crash reports, which should help me figure out the problem when people receive inexplicable errors.
No comments:
Post a Comment