An expert diagnostic agent for use in diagnosing intermittent and/or
difficult to reproduce software failures in computing devices is
disclosed. The expert diagnostic agent gathers data about the operating
system of a computing device and a plurality of software components
coupled to the computer operating system; applies rules to the data to
identify software failures; invokes tools as needed to attempt to correct
the software failures; and reports information about software failures.
The expert diagnostic agent may be invoked directly or activated by
certain events in computer system.