IP Library Granted Patent US 9,003,378
Granted Patent B2
US 9,003,378 · App. 12/967,456 · Granted Apr 7, 2015

Client-side application script error processing

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 9,003,378
App. No.
12/967,456
Granted
Apr 7, 2015
Kind
B2
Abstract

Systems, methods, and computer readable media for collecting run-time error information for an executing script through the use of a double code-injection technique are described. A first native code injection into a user's client-side application (e.g., a browser application) is made. The second injection is thereafter made by the user's client-side application itself (when the first injected program code is executed) into the application's associated scripting engine and only when a script error has been detected. The second injected program code or scripts collect detailed run-time script error information within the context of the application's scripting engine. The second injected program code can then return the collected error information to the user application's context where it may be provided to a debug tool or recorded for later review (by the first injected program code).

Claims (32)

1. A script error processing method, comprising:

injecting native program code into a client-side application executing on a computer system, wherein the client-side application is a browser application;

receiving, by the injected native program code of the browser application, a script error notification from a scripting engine associated with the client-side application;

in response to receiving the script error notification, injecting, by the injected native program code, script functions into the scripting engine;

after the script functions are injected, returning, by the scripting engine, control to the client-side application;

calling, by the client-side application, an error function;

in response to the calling, executing, by the scripting engine, the first of the injected script functions to collect an erring script's run-time error information;

calling, by the injected native program code, a second of the injected script functions;

receiving, by the injected native program code, the erring script's run-time error information from the second of the injected script functions; and

recording, by the injected native program code, the received collected erring script's run-time error information.

2. The method of claim 1 , wherein the act of executing the first of the injected script functions comprises collecting stack trace information for the erring script.

3. The method of claim 2 , further comprising assigning the collected stack trace information to a scripting engine variable.

4. The method of claim 2 further comprising executing, by the scripting engine, a standard error function after the act of collecting stack trace information for the erring script.

5. The method of claim 4 further comprising returning execution control to the injected native program code from the scripting engine after the act of executing the standard error function.

6. The method of claim 1 , wherein the act of recording comprises storing the collected erring script's run-time error information in a log file.

7. The method of claim 1 , wherein the act of recording comprises passing the collected erring script's run-time error information to a second application.

8. The method of claim 7 , wherein the second application comprises a script debugging application.

9. The method of claim 1 , wherein the client-side application comprises an INTERNET EXPLORER browser application.

10. The method of claim 1 , wherein the scripting engine comprises a JAVASCRIPT scripting engine.

11. The method of claim 1 , wherein the first and second injected script functions comprise a single script function.

12. A non-transitory program storage device having instructions stored thereon for causing a programmable control device to perform the method of claim 1 .

13. A computer network comprising:

a plurality of computing devices communicatively coupled to a computer network; and

a first computing device configured to perform at least a portion of the method of claim 1 wherein the entire method of claim 1 is performed collectively by the plurality of computing devices.

14. A double-code injecting method comprising:

injecting native program code into a browser application executing on a computer system;

receiving, by the injected native program code, from a scripting engine associated with the browser application, a script error notification based on a run-time script error detected by the scripting engine;

in response to receiving the script error notification, injecting, by the injected native program code, script functions into the scripting engine, only after the script error is detected by the scripting engine, the script functions having complete access to an erring script's context within the scripting engine;

executing, by the scripting engine, a first of the injected script functions to collect the erring script's run-time error information;

calling, by the injected native program code, the first of the injected script functions;

receiving, by the injected native program code, the erring script's run-time error information from the first of the injected script functions; and

in response to the receiving, providing, by the injected native program code, the received collected erring script's run-time error information to a debug tool.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →