IP Library Granted Patent US 8,762,952
Granted Patent B2
US 8,762,952 · App. 12/967,204 · Granted Jun 24, 2014

Recording method calls that led to an unforeseen problem

Inventors: Asaf Dafner (Gedera, IL); Sigal Korczyn (Bnei-Tsylon, IL); Yelena Langleyben (Ramat-Gan, IL); Shiri Semo Judelman (Kfar-Saba, IL)
Assignee: BMC Software, Inc.
G06F11/0766G06F11/3612
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,762,952
App. No.
12/967,204
Granted
Jun 24, 2014
Kind
B2
Abstract

A technique assists in resolving problems by aiding in the determination of the root cause of the problem. The technique allows recording of information about methods of executing applications that encounter problems, even if the method was not previously marked for recording. Upon detection of a problem, the method and all other methods on the current execution stack may be marked for retrospective recording. When each method exits, information about entry conditions and exit conditions of each method may be recorded for presentation to a user of the application for problem resolution.

Claims (72)

1. A method comprising:

executing, on a computer, a first method in a first thread of an application, the first method included in a plurality of methods included in a stack associated with the first thread, the inclusion of a method in the stack based on an instance of the method being executed in the first thread; and without interrupting the execution of the first method:

detecting a problem during the execution of the first method; and

responsive to detecting the problem:

adding the plurality of methods included in the stack to a recording profile;

associating a respective recording indicator with each of the plurality of methods added to the recording profile; and

setting the respective recording indicator associated with the first method; and

recording, at exit from the first method and responsive to the setting of the respective recording indicator for the first method, a first information comprising entry conditions of the first method.

2. The method of claim 1 , further comprising:

presenting the first information to a user of the application.

3. The method of claim 1 , further comprising:

recording, at exit from the first method and responsive to the setting of the respective recording indicator for the first method, a second information comprising exit conditions of the first method.

4. The method of claim 3 , further comprising:

presenting the second information to a user of the application.

5. The method of claim 1 , further comprising:

setting another recording indicator associated with the first method prior to execution of the first method;

recording, at entry to the first method and responsive to the setting of the other recording indicator, a third information comprising entry conditions of the first method; and

recording, at exit from the first method and responsive to the setting of the other recording indicator, a fourth information comprising exit conditions of the first method.

6. The method of claim 5 , further comprising:

presenting the third information and the fourth information to a user of the application.

7. The method of claim 1 , wherein the entry conditions of the first method include arguments passed to the first method at entry to the first method.

8. The method of claim 1 , wherein detecting a problem during the execution of the first method comprises:

detecting that a transaction involving the first method has exceeded a predetermined duration threshold.

9. The method of claim 1 , further comprising:

identifying a second method included in the recording profile;

setting the respective recording indicator associated with the second method; and

recording, at exit from the second method and responsive to the setting of the respective recording indicator for the second method, a second information comprising entry conditions of the second method and a third information comprising exit conditions of the second method.

10. The method of claim 9 , further comprising:

presenting the second information and the third information to a user of the application.

11. The method of claim 1 , further comprising:

recording, at exit from the first method and responsive to the setting of the respective recording indicator for the first method, a second information comprising exit conditions of the first method.

12. The method of claim 11 , further comprising:

resetting, at exit from the first method and responsive to recording the second information, the respective recording indicator for the first method, the resetting removing the respective recording indicator for the first method from the recording profile.

13. The method of claim 1 , wherein

associating a respective recording indicator with each of the plurality of methods added to the recording profile comprises:

defining a respective variable for each of the plurality of methods, each respective variable included in a class that implements each of the plurality of methods, the respective variables comprising the recording profile; and wherein setting the respective recording indicator associated with the first method comprises:

defining a first value for the respective variable for the first method.

14. The method of claim 13 , wherein the first value for the respective variable for the first method is indicative of at least one type of information to be recorded corresponding to the first method.

15. The method of claim 13 , further comprising:

defining a second value for the respective variable for the first method, the second value indicative of entry and exit conditions of the first method as a types of information to be recorded corresponding to the first method; and

recording, during every invocation of the first method and responsive to defining the second value for the respective variable for the first method, the entry and exit conditions of the first method.

16. The method of claim 1 , wherein detecting a problem during the execution of the first method comprises:

identifying the first thread as an execution thread corresponding to the problem, and wherein recording, at exit from the first method and responsive to the setting of the first recording indicator, a first information comprising entry conditions of the first method comprises:

recording at exit from the first method the first information only if the method is executing in the execution thread corresponding to the problem.

17. A method comprising:

detecting a problem during execution of a first method of an object of application on a computer;

setting a first recording indicator associated with the first method responsive to detecting the problem;

adding, responsive to the setting of the first recording indicator, the first recording indicator to a recording profile associated with the first method;

recording, at exit from the first method and responsive to the first recording indicator, a first information comprising entry conditions of the first method; and

removing, at exit from the first method, the first recording indicator from the recording profile associated with the first method only if the problem was detected in an execution thread corresponding to the problem.

18. A non-transitory computer readable medium with instructions for a programmable control device stored thereon, wherein the instructions cause the programmable control device to:

execute a first method in a first thread of an application, the first method included in a plurality of methods included in a stack associated with the first thread, the inclusion of a method in the stack based on an instance of the method being executed in the first thread; and without interrupting the execution of the first method:

detect a problem during the execution of the first method; and

responsive to detecting the problem:

add the plurality of methods included in the stack to a recording profile;

associate a respective recording indicator with each of the plurality of methods added to the recording profile; and

set a first recording indicator associated with the first method;

and

record, at exit from the first method and responsive to the setting of the first recording indicator, a first information comprising entry conditions of the first method.

19. A networked computer system comprising:

a first computer;

a second computer, communicatively coupled to the first computer;

software executing on the first computer that performs actions comprising:

executing a first method in a first thread of an application, the first method included in a plurality of methods included in a stack associated with the first thread, the inclusion of a method in the stack based on an instance of the method being executed in the first thread; and without interrupting the execution of the first method:

detecting a problem during the execution of the first method; and

responsive to detecting the problem:

adding the plurality of methods included in the stack to a recording profile;

associating a respective recording indicator with each of the plurality of methods added to the recording profile; and

setting a first recording indicator associated with the first method; and

recording, at exit from the first method and responsive to the setting of the first recording indicator, a first information comprising entry conditions of the first method; and

software executing on the second computer that performs actions comprising:

presenting the first information to a user of the application.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2026
From: BMC SOFTWARE ISRAEL LTD
To: BMC HELIX ISRAEL LTD.
Reel/Frame 075403/0859 →
MERGER Recorded Nov 9, 2018
From: IDENTIFY SOFTWARE LTD.
To: BMC SOFTWARE ISRAEL LTD.
Reel/Frame 047465/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2018
From: IDENTIFY SOFTWARE LTD.
To: BMC SOFTWARE ISRAEL LTD.
Reel/Frame 047465/0855 →
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 →
RELEASE OF SECURITY INTEREST Recorded Aug 25, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 043678/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2017
From: BMC SOFTWARE, INC.
To: IDENTIFY SOFTWARE LTD.
Reel/Frame 042749/0481 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA TO ADD AN OMITTED ASSIGNOR PREVIOUSLY RECORDED ON REEL 025493 FRAME 0061. ASSIGNOR(S) HEREBY CONFIRMS THE THE CONVEYING PARTY DATA SHOULD INCLUDE SHIRI SEMO JUDELMAN AS AN ASSIGNOR. Recorded Aug 27, 2013
From: DAFNER, ASAF; KORCZYN, SIGAL; LANGLEYBEN, YELENA; JUDELMAN, SHIRI SEMO
To: BMC SOFTWARE, INC.
Reel/Frame 031095/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2010
From: DAFNER, ASAF; KORCZYN, SIGAL; LANGLEYBEN, YELENA
To: BMC SOFTWARE, INC.
Reel/Frame 025493/0061 →
Continuity (1)
Related Publication 20120151284A1 · Jun 14, 2012