IP Library Granted Patent US 8,966,448
Granted Patent B2
US 8,966,448 · App. 13/198,281 · Granted Feb 24, 2015

Techniques for debugging an application

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,966,448
App. No.
13/198,281
Granted
Feb 24, 2015
Kind
B2
Abstract

Techniques for debugging applications are provided. Access to an application is controlled by a wrapper. The wrapper intercepts calls to the application and records the calls. The calls are then passed to the application for processing. The recorded calls form a log which may be analyzed or mined to detect error conditions or undesirable performance characteristics associated with the application independent of source associated with the application.

Claims (29)

1. A method implemented in a non-transitory medium as executable instructions that process on a machine, the instructions when executed by the machine performing the method, comprising:

generating, by the machine, an executable script that controls input to an executable application and output produced from the executable application, the executable script presents itself as the executable application to an issuer of the executable application and presents itself as the issuer to the executable application, the executable script: records information associated with the issuer, records calls made to functions of the executable application, and passes the calls along to the executable application, and processing on the machine the executable script, the executable script processes in an entirely transparent manner to the issuer and the executable application and executable script is not noticed by the issuer and the executable application;

monitoring, by the machine, the calls made to the executable application and the information produced as output emanating from the executable application, producing, by the executable script, a document having a tagged processing flow for interactions made to the executable application and merging the document with other information for analysis when performance of the executable script is undesirable; and

directing, by the machine, the calls and the information to be processed by the script.

2. The method of claim 1 , wherein generating further includes defining a format for the input and output based on a schema for the application.

3. The method of claim 2 , wherein generating further includes deriving at least a portion of the executable script from the schema.

4. The method of claim 1 , wherein generating further includes renaming the executable script within a processing environment to be an original name associated with the executable application and renaming the executable application to a new name that just the executable script has access to.

5. The method of claim 4 , wherein monitoring further includes forwarding the calls and the information to the original name that points to the executable script to ensure the input to and the output from the executable application is handled through the executable script.

6. The method of claim 1 further comprising, using, by the machine, the executable script to patch a known error condition that exists within the executable application without modifying the executable application.

7. The method of claim 1 further comprising, using, by the machine, the executable script to provide an enhancement to processing associated with the executable application without modifying the executable application.

8. The method of claim 1 further comprising, using, by the machine, the executable script as a preprocessor and a post processor to the executable application.

9. A method implemented in a non-transitory medium as executable instructions that process on a machine, the instructions when executed by the machine performing the method, comprising:

intercepting, by the machine, calls directed to and output produced from an executable application where a source code for the executable application is unavailable, and wherein the instructions present as the executable application to an issuer of the executable application, and the instructions presents itself as the issuer to the executable application, the instructions: record information associated with the issuer, record the calls made to functions of the executable application, and pass the calls along to the executable application, and processing on the machine the instructions, the instructions process in an entirely transparent manner to the issuer and the executable application and the instructions are not noticed by the issuer and the executable application;

maintaining, by the machine, the calls in a log file, producing, by the machine, a document having a tagged processing flow for interactions made to the executable application and merging the document with other information for analysis when performance of the executable script is undesirable;

preprocessing, by the machine, the calls before passing modified calls to the executable application for processing; and

post processing, by the machine, the output produced from the executable application before passing modified output to an original issuer that made the calls to the executable application.

10. The method of claim 9 , wherein intercepting further includes directly receiving the calls from the issuer as a result of the method being named with an original name associated with executable application, the issuer believing the calls are being directly sent to the executable application.

11. The method of claim 9 , wherein maintaining further includes recording state information for each call and for each piece of output information in the log file.

12. The method of claim 11 , wherein recording further includes maintaining values for selective variables with each of the recorded states and for each of the calls within the log file.

13. The method of claim 12 further comprising, providing, by the machine, an interface to debug the executable application using the log file.

14. The method of claim 9 , wherein preprocessing further includes changing a format associated with the calls by the issuer to an application format expected by the executable application when the format is different from the application format.

15. The method of claim 9 , wherein preprocessing further includes changing content information or syntax information associated with the calls to avoid a known error in the executable application.

16. The method of claim 9 , wherein post processing further includes changing a format associated with the output produced by the executable application to an issuer format expected by the issuer when the format is different from the issuer format.

17. The method of claim 16 , wherein post processing further includes changing content information associated with the output to enhance the output beyond capabilities of the executable application.

18. A method implemented in a non-transitory medium as executable instructions that process on a machine, the instructions when executed by the machine performing the method, comprising:

providing, by the machine, an executable script that intercepts input to and output from an executable application that lacks source code and recording by the executable script, within a log file, each input call and output information along with state information and selective values for variables, the executable script presents itself as the executable application to an issuer of the executable application, and presents itself as the issuer to the executable application, the executable script: records information associated with the issuer, records calls made to functions of the executable application, and passes the calls along to the executable application, producing, by the executable script, a document having a tagged processing flow for interactions made to the executable application and merging the document with other information for analysis when performance of the executable script is undesirable, and processing on the machine the executable script, the executable script processes in an entirety transparent manner to the issuer and the executable application and is not noticed by the issuer and the executable application; and

providing, by the machine, an debugging interface to a user for debugging the executable application without the source code by using the log file.

19. The method of claim 18 further comprising, using, by the machine, the executable script to patch known errors in the executable application.

20. The method of claim 18 further comprising, using, by the machine, the executable script to enhance the output information of the executable application with capabilities that do not exist in the executable application.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: NOVELL INTELLECTUAL PROPERTY HOLDINGS, INC.
To: RPX CORPORATION
Reel/Frame 037809/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: NOVELL, INC.
To: CPTN HOLDINGS LLC
Reel/Frame 037421/0222 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: CPTN HOLDINGS LLC
To: NOVELL INTELLECTUAL PROPERTY HOLDINGS, INC.
Reel/Frame 037421/0518 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: COOPER, BRIAN COLLINGS; CARTER, STEPHEN R.
To: NOVELL, INC.
Reel/Frame 037420/0776 →