User transparent software malfunction detection and reporting
First Claim
1. A method for debugging a software application, during executing said software application under an operating system, comprising:
- a) Providing a software agent for intercepting messages transferred between said software application and said operating system; and
executing said software agent under said operating system;
b) Intercepting messages transferred between said software application and said operating system by said agent, and, optionally, storing the description of said messages and their timestamp in a storage media;
c) creating by said agent a Check Alive, being a thread for said application;
d) sending by said Check Alive thread messages comprising a request for response to said application; and
, therebye) upon not receiving a response to said message within a timeout period, indicating a hang-out of said application.
5 Assignments
0 Petitions
Accused Products
Abstract
The present invention, generally speaking, “instruments” an arbitrary software program, without changing the software program, to automate malfunction detection and reporting. Although users can be invited to enter a description of what the user was doing prior to receiving the error, report generation and transmission to a remote server can be fully automatic and transparent to the user. In the case of beta testing, therefore, a software developer is guaranteed to receive all pertinent information about malfunctions of an application without having to rely on “fallible humans” for this information. The effectiveness of beta testing, in terms of ultimately contributing to an improved product, is therefore greatly increased. Various kinds of malfunctions may be detected and reported, including an application “crashing,” becoming “hung,” etc.
42 Citations
36 Claims
-
1. A method for debugging a software application, during executing said software application under an operating system, comprising:
-
a) Providing a software agent for intercepting messages transferred between said software application and said operating system; and
executing said software agent under said operating system;b) Intercepting messages transferred between said software application and said operating system by said agent, and, optionally, storing the description of said messages and their timestamp in a storage media; c) creating by said agent a Check Alive, being a thread for said application; d) sending by said Check Alive thread messages comprising a request for response to said application; and
, therebye) upon not receiving a response to said message within a timeout period, indicating a hang-out of said application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for debugging a software application, during executing said software application under an operating system, comprising:
-
a) providing a software agent for hooking processes being executed under said operating system, and executing said software agent under said operating system; b) on starting a new process thread of said application(s), hooking by said agent said process thread and creating detection thread(s) for automatically detecting events and malfunction of said process thread; c) upon detecting a malfunction by one of said detection thread(s), logging the description of said malfunction; d) presenting a log to a user, and/or sending said log to a remote server; and e) optionally, terminating the execution of said application.
-
-
23. A system for debugging a software application, during executing said software application under an operating system on a user'"'"'s computer, said system comprising:
-
storage means within said user'"'"'s computer for temporarily storing information regarding the normal operation and malfunction of said application in said user'"'"'s machine; a software agent, being executed under said operating system for intercepting messages transferred between said application and said operating system, thereby obtaining information regarding the normal operation of said application; for creating a Micro Debugger, being a thread for said agent to be registered as the debugger of the process of said application, thereby intercepting exceptions during executing said application; for sending the obtained information regarding a normal operation and exception of said application to a remote server; a remote server, for gathering information regarding the execution and exception of said application in said user'"'"'s machine.
-
-
24. A method for debugging a software application, during executing said software application under an operating system, comprising:
-
a) Providing a software agent for intercepting messages transferred between said software application and said operating system; and
executing said software agent under said operating system;b) Intercepting messages transferred between said software application and said operating system by said agent, and, optionally, storing the description of said messages and their timestamp in a storage media; and c) creating by said agent a Micro Debugger, being a thread for said application, and registering said Micro Debugger as the debugger of the process of said application; and
upon occurring an exception in said application;i. calling said Micro Debugger thread by said operating system as being the debugger of said application, thereby obtaining details regarding said exception; ii. sending said details by said Micro Debugger thread to said agent, and storing said details within a storage media; and iii. optionally, performing cleanup for said application; d) optionally, terminating the executing of said application. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A method for debugging a software application, during executing said software application under an operating system, comprising:
-
intercepting messages transferred between said software application and said operating system; storing the description of said messages and their timestamp in a storage media; creating a Micro Debugger, being a thread for said application; registering said Micro Debugger as the debugger of the process of said application; and upon occurring an exception in said application; calling said Micro Debugger thread by said operating system as being the debugger of said application; and obtaining details regarding said exception. - View Dependent Claims (35, 36)
-
Specification