IP Library Granted Patent US 7,895,569
Granted Patent B2
US 7,895,569 · App. 11/468,314 · Granted Feb 22, 2011

System and method for implementing software breakpoints in an interpreter

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 7,895,569
App. No.
11/468,314
Granted
Feb 22, 2011
Kind
B2
Abstract

A method for implementing software breakpoints in a software program to be executed by a interpreter, comprising the steps of executing a look-up, in a main loop of the interpreter, the look-up function searching a list of breakpoint addresses to determine whether a breakpoint instruction is to be executed at the address referenced by the interpreter's current instruction pointer instead of the program instruction, and maintaining, in memory, the list of breakpoints addresses separately from the program code, such that the breakpoint list can be altered separately from the program code.

Claims (28)

1. A method of implementing software breakpoints in program code to be executed by an interpreter, comprising the steps of:

maintaining, in memory, a list of breakpoint addresses separately from a program code, such that the list of breakpoints can be altered separately from the program code;

comparing a current instruction pointer of the interpreter to test variables, the test variables defining a range of consecutive addresses of instructions in the program code that are free of breakpoints; and

when the current instruction pointer is outside said range, executing a look-up function, for searching the list of breakpoint addresses to determine whether a breakpoint instruction is to be executed, at an address referenced by the current instruction pointer, instead of an instruction in the program code;

wherein if the current instruction pointer corresponds to one breakpoint address of the list of breakpoint addresses, executing the breakpoint instruction;

wherein if the current instruction pointer corresponds to none of the list of breakpoint addresses, updating the test variables.

2. A method as defined in claim 1 , said look-up function including a binary search function for searching a sorted list of said breakpoint addresses.

3. A method as defined in claim 2 , including returning, a pair of successive breakpoints addresses from the list of breakpoints if said binary search fails, the returned addresses for defining an upper and lower value for said test variables.

4. A method as defined in claim 1 said look-up function including a linear search function for searching a sorted list of said breakpoint addresses.

5. A non-transitory computer readable medium storing instructions or statements for execution in a computer for performing a method of implementing software breakpoints in program code to be executed by an interpreter, the method comprising:

maintaining, in memory, a list of breakpoint addresses separately from a program code, such that the list of breakpoints can be altered separately from the program code;

comparing a current instruction pointer of the interpreter to test variables, the test variables defining a range of consecutive addresses of instructions in the program code that are free of breakpoints; and

when the current instruction pointer is outside said range, executing a look-up function for searching the list of breakpoint addresses to determine whether a breakpoint instruction is to be executed, at an address referenced by said current instruction pointer, instead of an instruction of the program code;

wherein if the current instruction pointer corresponds to one breakpoint address of the list of breakpoint addresses, executing the breakpoint instruction;

wherein if the current instruction pointer corresponds to none of the list of breakpoint addresses, updating the test variables.

6. A method of debugging program code to be executed by an interpreter, said method comprising the steps of:

creating a list of breakpoint addresses associated with the program code to be debugged;

storing said list of breakpoints addresses separately from the program code in a memory of a target device;

comparing a current instruction pointer of the interpreter to test variables, the test variables defining a range of consecutive addresses of instructions in the program code that are free of breakpoints; and

when the current instruction pointer is outside said range, executing a look-up function for searching said list of breakpoint addresses to determine whether a breakpoint instruction is to be executed, at an address referenced by said current instruction pointer, instead of an instruction of the program code;

wherein if the current instruction pointer corresponds to one breakpoint address of the list of breakpoint addresses, executing the breakpoint instruction;

wherein if the current instruction pointer corresponds to none of the list of breakpoint addresses, updating the test variables.

7. A method as defined in claim 1 , comprising:

updating the test variables based on the list of breakpoint addresses.

8. A computer readable medium as defined in claim 5 , the method comprising:

updating the test variables based on the list of breakpoint addresses.

9. A method as defined in claim 6 , comprising:

updating the test variables based on the list of breakpoint addresses.

Assignments (3)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 4, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034161/0093 →