Error detection, handling, and reporting are fascinating problems in the OLPC software stack because we must provide software that is usable by illiterates, that must be translated for those who can read, that must teach those who wish to learn, and (ideally) that cannot be permanently broken.
To date, OLPC has employed four major error-reporting strategies including
- software aborts,
- traceback capture,
- freeform logging, and
- traced execution (e.g. under strace or ltrace).
However, user reports like
suggest that we can do better.