IP Library Patent Application 12427732
Patent Application
App. No. 12/427,732

METHOD OF FINDING A SAFE TIME TO MODIFY CODE OF A RUNNING COMPUTER PROGRAM

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 None
App. No.
12/427,732
Abstract

An improved method of modifying code of a running computer program is disclosed that includes the following steps, performed in the order indicated: (a) determining the functions that will be modified due to desired changes to the running computer program; (b) using the results of step (a), determining the start memory address and the end memory address of such a function; and (c) using the results of step (b) determining, for such a function, whether an execution stack of any thread in the running computer program contains a specified numeric value; and (d) using the results of step (c), determining whether the running computer program is currently in a state of execution such that the function can be modified safely. A data storage medium containing computer instructions to perform the improved method is also disclosed.

Claims (30)

1 . (canceled)

2 . (canceled)

3 . A method comprising:

identifying a portion of executable code to be updated in a running computer program; and

determining whether it is safe to modify the executable code of the running computer program without having to restart the running computer program.

4 . The method of claim 3 further comprising applying a hot update to the executable code.

5 . The method of claim 3 , wherein identifying a portion of executable code to be updated in a computer program includes determining a list of functions to modify as part of changes to the executable code.

6 . The method of claim 5 further comprising determining a start memory address and an end memory address in the portion of executable code from a program symbol table for each of the functions in the list.

7 . The method of claim 5 , wherein determining whether it is safe to modify the executable code of the computer program includes determining whether execution stacks of executable threads in the running computer program include a numeric value that is within the range of the start memory address and the end memory address for each of the functions in the list.

8 . The method of claim 7 further comprising applying a hot update to the executable code in response to determining that the execution stacks of the executable threads include numeric values that are outside the range of the start memory address and the end memory address for each of the functions in the list.

9 . The method of claim 3 further comprising repeating the step of determining whether it is safe to modify the executable code of the computer program.

10 . The method of claim 4 , wherein applying a hot update to the executable code includes applying the hot update without having to restart the computer program.

11 . The method of claim 3 further comprising determining whether an execution stack of the portion of executing code of the computer program maintains a reference to the range of addresses for each of a plurality of functions to be updated as part of the modifications to the executable code.

12 . A method comprising:

determining at least one function in a running computer program to be modified;

determining whether the running computer program is currently in a state of execution such that it can be modified safely; and

modifying code of the running computer program so as to modify the running computer program without having to restart the running computer program in response to determining that the running computer code can be safely modified.

13 . The method of claim 12 , wherein determining whether the running computer program is currently in a state of execution such that it can be modified safely includes determining, for the function to be modified, whether an execution stack of a thread in the running computer program includes a numeric value on the execution stack that could prevent safe modification.

14 . The method of claim 13 , wherein determining whether the execution stack includes a numeric value on the execution stack that could prevent safe modification includes:

determining, for the function that will be modified as part of changes to the running computer program, a start memory address of the function in the running computer program and an end memory address of the function in the running computer program; and

determining, for the function that will be modified as part of the changes to the running computer program, whether the execution stack includes a numeric value that is greater than or equal to the start address of the function and is less than the end address of the function.

15 . The method of claim 14 , wherein the numeric value is located at any position on the execution stack.

16 . A computer program product having a computer-readable medium including computer program logic encoded thereon that, when executed on a computer system provides a method of modifying code of a running computer program that causes the computer system to perform operations of:

determining a list of functions that will be modified as part of changes to the running computer program;

determining, for a function that will be modified as part of the changes to the running computer program, a start memory address of the function in the running computer program and an end memory address of the function in the running computer program; and

determining, for the function that will be modified as part of the changes to the running computer program, whether an execution stack of a thread in the running computer program includes a numeric value that:

(1) is greater than or equal to the start address of the function; and

(2) is less than the end address of the function; and

determining whether the running computer program is currently in a state of execution such that it can be modified safely.

17 . The method of claim 16 , wherein the numeric value is located at any position on the execution stack.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2011
From: KSPLICE, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 027395/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2009
From: ARNOLD, JEFFREY BRIAN
To: KSPLICE, INC.
Reel/Frame 022591/0638 →