Patent ID: 8694831

Claim:
A method comprising: receiving, by a software malfunction reporting tool executing on a client device separate from applications of the client device, crash data from at least one of a plurality of crash handlers of the client device, each of the plurality of crash handlers corresponding to one of an application or an operating system of the client device; detecting, by the software malfunction reporting tool, a type of a software malfunction of the crash data, the type of software malfunction defined in a malfunction library of the software malfunction reporting tool, the malfunction library comprising a plurality of addon modules that each are dedicated to a software language of software applications executed on the client device and that each specify how to detect a malfunction in the software applications executed in the software language associated with the addon module; determining, by the software malfunction reporting tool, a manner for reporting data of the software malfunction as defined in a reporting library of the software malfunction reporting tool, the reporting library comprising a plurality of plugin modules that correspond to types of software malfunctions and each comprise a reporter component defining a manner to report a type of software malfunction corresponding to the plugin module; generating, by a core component of the software malfunction reporting tool, a crash report describing the data of the software malfunction, wherein the crash report is generated in the manner determined by the reporter component of the plugin module corresponding to the type of software malfunction; and reporting, by the core component, the crash report in the manner specified by the reporter component of the plugin module corresponding to the type of software malfunction; wherein the plurality of addon modules and the plurality of plugin modules are loaded as part of the software malfunction reporting tool upon an initialization of the software malfunction reporting tool on the client device, and wherein the core component is a compiled-in feature of the software malfunction reporting tool.