IP Library Granted Patent US 9,489,284
Granted Patent B2
US 9,489,284 · App. 14/375,959 · Granted Nov 8, 2016

Debugging method and computer program product

Inventors: Alexandru Ghica (Bucharest, RO); Razvan Ionescu (Bucharest, RO); Radu-Victor Sarmasag (Targoviste, RO)
Assignee: FREESCALE SEMICONDUCTOR, INC.
G06F11/3636G06F11/0775
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,489,284
App. No.
14/375,959
Granted
Nov 8, 2016
Kind
B2
Abstract

A method for debugging a computer program is proposed. The method includes a step of running at least part of the computer program on a computer, thereby prompting the computer to execute a sequence of instructions and to generate a trace corresponding to the executed sequence of instructions. When the program has generated an exception, selecting a set of one or more exception strings on the basis of the trace, so that each of the exception strings is a unique substring of the trace. The exception strings are indicated to a user or to a debugging tool. The set of exception strings may notably include the ultimate shortest unique substring of the trace. A computer program product is also described.

Claims (24)

1. A method for debugging a computer program, comprising:

running at least part of said computer program on a computer, thereby prompting said computer to execute a sequence of instructions and to generate a trace corresponding to said executed sequence of instructions; and,

when said program has generated an exception, selecting by said computer a set of one or more exception strings among one or more candidate strings wherein each candidate string is a substring of said trace by successively determining whether each of the candidate strings is unique in an order so that any first candidate string which is a substring of a second candidate string is examined for uniqueness only after determining that the second candidate string is unique, wherein the candidate strings are denoted, the candidate string starting with a I-th literal and ending with a J-th literal of said trace, wherein the order is defined by an outer loop over J from an initial value JMAX down to a final value JMIN and an inner loop over I from an initial value IMIN up to J, where I and J represent integers, so that each of said exception strings is a unique substring of said trace; and

indicating said exception strings to a user or to a debugging tool.

2. The method of claim 1 , wherein said set of exception strings includes one or more of the shortest unique substrings of said trace or all shortest unique substrings of said trace.

3. The method of claim 1 , wherein said set of exception strings includes the ultimate shortest unique substring of said trace.

4. The method of claim 1 , wherein said selecting said set of one or more exception strings is performed on the basis of said trace and on the basis of one or more additional strings, so that none of said exception strings is a substring of any one of said additional strings.

5. The method of claim 1 , further comprising:

indicating the order in which said exception strings appear in said trace.

6. The method of claim 1 , further comprising:

selecting, for each of said exception strings, a context string, so that the respective exception string is a true substring of the respective context string and the context string is a true substring of said trace; and

indicating said context strings to said user or to said debugging tool.

7. The method of claim 1 , wherein said trace comprises a succession of one or more principal substrings, each of said principal substrings starting with an initial literal which is the same for all said principal substrings and which appears in each of said principal substrings only at the beginning of the respective principal substring, wherein each of said one or more exception strings is a substring of one of said principal substrings.

8. The method of claim 7 , wherein said computer program comprises a loop and said initial literal identifies an initial instruction in said loop.

9. A method for debugging a computer program, comprising:

running at least part of the computer program on a computer, thereby prompting the computer to execute a sequence of instructions and to generate a trace corresponding to the executed sequence of instructions;

generating an exception in response to detecting an error in the computer program, when the program has generated an exception, selecting by the computer a set of one or more subsequences of instructions of the trace, so that each of the subsequences of instructions is a unique subsequence instruction of the trace by successively determining whether candidate strings are unique in an order so that any first candidate string which is a substring of a second candidate string is examined for uniqueness only after determining that the second candidate string is unique, wherein the candidate strings are denoted, the candidate string starting with a I-th literal and ending with a J-th literal of said trace, wherein the order is defined by an outer loop over J from an initial value JMAX down to a final value JMIN and an inner loop over I from an initial value IMIN up to J, where I and J represent integers; and

indicating the set of one or more subsequences of instructions to a user or to a debugging tool.

10. The method of claim 9 , further comprising communicating the set of one or more subsequences of instructions to a debugging tool.

11. The method of claim 9 , wherein each of the one or more subsequences of instructions comprises one or more shortest unique subsequences of instructions.

12. The method of claim 11 , wherein when there are more than one shortest unique subsequences of instructions, indicating an order in which the subsequences of instructions appear in the trace by numbering the more than one shortest unique subsequences of instructions.

13. The method of claim 11 , further comprising a context subsequence of instructions, wherein the context subsequence of instructions comprises a shortest unique subsequence of instructions, a preceding literal, and a succeeding literal.

14. The method of claim 9 , wherein portions of the program are repetitive, wherein the trace further comprises a succession of one or more principle subsequences, wherein each of the one or more principle subsequences begins with a same literal, and wherein one or more subsequences of instructions that extend across more than one principle subsequence are excludes from the set of one or more subsequences of instructions.

15. The method of claim 9 , wherein the program includes one or more loops, and wherein the trace is searchable from either a beginning instruction or from an ending instruction.

Assignments (24)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0502 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0460 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0921 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034153/0027 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034160/0351 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034160/0370 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2014
From: GHICA, ALEXANDRU; IONESCU, RAZVAN; SARMASAG, RADU-VICTOR
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 033452/0887 →
Continuity (1)
Related Publication 20150026523A1 · Jan 22, 2015