One implementation of a single-event-upset testbed that I worked with used the valgrind infrastructure to inject faults in running code, purely in software.  (Example: <a href="http:&#x2F;&#x2F;www.sts.tu-harburg.de&#x2F;research&#x2F;fitin.html" rel="nofollow">http:&#x2F;&#x2F;www.sts.tu-harburg.de&#x2F;research&#x2F;fitin.html</a>, earlier work: <a href="http:&#x2F;&#x2F;dus.jpl.nasa.gov&#x2F;projects&#x2F;solar&#x2F;Papers&#x2F;granat-abft-svm-09.pdf" rel="nofollow">http:&#x2F;&#x2F;dus.jpl.nasa.gov&#x2F;projects&#x2F;solar&#x2F;Papers&#x2F;granat-abft-sv...</a>)<p>Your larger point is right:  some commenters are giving up on problem analysis or solutions &quot;because the problem is hardware&quot;.  That implication does not follow.  Perhaps people are too used to highly abstracted software systems?