Software debugging with execution match determinations

US9009678B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9009678-B2
Application numberUS-201113170846-A
CountryUS
Kind codeB2
Filing dateJun 28, 2011
Priority dateJun 28, 2011
Publication dateApr 14, 2015
Grant dateApr 14, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Software debugging with execution match determinations, including: inserting, by a compiler while compiling source code into a debuggable program, a phantom breakpoint at every line of source code; including in the debuggable program, by the compiler, a breakpoint handling module and an exit handler; executing the debuggable program including encountering one or more of the phantom breakpoints and removing, by the breakpoint handling module, each encountered phantom breakpoint; creating, by the exit handler, upon exiting execution of the debuggable program, a copy of the debuggable program that includes only phantom breakpoints not encountered during execution; and providing the copy of the debuggable program to a debugger.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of software debugging with execution match determinations, the method comprising: inserting, by a compiler while compiling source code into a debuggable program, a phantom breakpoint at every line of source code; including in the debuggable program, by the compiler, a breakpoint handling module and an exit handler; executing the debuggable program including encountering one or more of the phantom breakpoints and removing, by the breakpoint handling module, each encountered phantom breakpoint; creating, by the exit handler, upon exiting execution of the debuggable program, a copy of the debuggable program that includes only phantom breakpoints not encountered during execution; providing the copy of the debuggable program to a debugger; identifying, by the debugger, lines of source code of the copy of the debuggable program that do not include a phantom breakpoint; inserting, by the debugger, an executed phantom breakpoint at one or more of the identified lines of source code of the copy of the debuggable program; executing, by the debugger, the copy of the debuggable program including, removing any phantom or executed phantom breakpoint; and after exiting execution of the copy of the debuggable program, determining, by the debugger, whether execution of the copy of the debuggable program matches the execution of the debuggable program including, determining that the executions do not match if any phantom breakpoints were removed during execution of the copy of the debuggable program or any executed phantom breakpoint remains after exiting execution of the copy of the debuggable program. 2. The method of claim 1 , wherein: inserting a phantom breakpoint at every line of source code further comprises: replacing, at every line of source code, original source code with a phantom breakpoint, storing the original source code, and generating a breakpoint table, the breakpoint table comprising an entry for each phantom breakpoint inserted in the source code, each entry in the breakpoint table referencing the original source code replaced by the phantom breakpoint; and removing each encountered phantom breakpoint further comprises replacing, in dependence upon the breakpoint table, the encountered phantom breakpoint with original source code. 3. The method of claim 1 , wherein inserting an executed phantom breakpoint at one or more of the identified lines of source code further comprises inserting an executed phantom breakpoint at each identified line of source code. 4. The method of claim 1 , wherein: inserting an executed phantom breakpoint at one or more of the identified lines of source code further comprises: inserting, at an entry point of each routine in an identified line of source code, an executed entry breakpoint without inserting an executed phantom breakpoint at lines of source code within the routine and inserting, at each other identified line of source code, an executed phantom breakpoint; and executing the copy of the debuggable program further comprises: upon encountering an executed entry breakpoint at an entry point of a routine thereby stopping execution, inserting an executed phantom breakpoint at each line of source code within the routine and resuming execution. 5. The method of claim 1 , further comprising: if the executions match, displaying, by the debugger in a graphical user interface (‘GUI’), an indication of matching execution; and if the executions do not match, displaying, by the debugger in the GUI, an indication of non-matching execution. 6. An apparatus for software debugging with execution match determinations, the apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: inserting, by a compiler while compiling source code into a debuggable program, a phantom breakpoint at every line of source code; including in the debuggable program, by the compiler, a breakpoint handling module and an exit handler; executing the debuggable program including encountering one or more of the phantom breakpoints and removing, by the breakpoint handling module, each encountered phantom breakpoint; creating, by the exit handler, upon exiting execution of the debuggable program, a copy of the debuggable program that includes only phantom breakpoints not encountered during execution; providing the copy of the debuggable program to a debugger; identifying, by the debugger, lines of source code of the copy of the debuggable program that do not include a phantom breakpoint; inserting, by the debugger, an executed phantom breakpoint at one or more of the identified lines of source code of the copy of the debuggable program; executing, by the debugger, the copy of the debuggable program including, removing any phantom or executed phantom breakpoint; and after exiting execution of the copy of the debuggable program, determining, by the debugger, whether execution of the copy of the debuggable program matches the execution of the debuggable program including, determining that the executions do not match if any phantom breakpoints were removed during execution of the copy of the debuggable program or any executed phantom breakpoint remains after exiting execution of the copy of the debuggable program. 7. The apparatus of claim 6 , wherein: inserting a phantom breakpoint at every line of source code further comprises: replacing, at every line of source code, original source code with a phantom breakpoint, storing the original source code, and generating a breakpoint table, the breakpoint table comprising an entry for each phantom breakpoint inserted in the source code, each entry in the breakpoint table referencing the original source code replaced by the phantom breakpoint; and removing each encountered phantom breakpoint further comprises replacing, in dependence upon the breakpoint table, the encountered phantom breakpoint with original source code. 8. The apparatus of claim 6 , wherein inserting an executed phantom breakpoint at one or more of the identified lines of source code further comprises inserting an executed phantom breakpoint at each identified line of source code. 9. The apparatus of claim 6 , wherein: inserting an executed phantom breakpoint at one or more of the identified lines of source code further comprises: inserting, at an entry point of each routine in an identified line of source code, an executed entry breakpoint without inserting an executed phantom breakpoint at lines of source code within the routine and inserting, at each other identified line of source code, an executed phantom breakpoint; and executing the copy of the debuggable program further comprises: upon encountering an executed entry breakpoint at an entry point of a routine thereby stopping execution, inserting an executed phantom breakpoint at each line of source code within the routine and resuming execution. 10. The apparatus of claim 6 , further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: if the executions match, displaying, by the debugger in a graphical user interface (‘GUI’), an indication of matching execution; and if the executions do not match, displaying, by the debugger in the GUI, an indication of non-matching execution. 11. A computer program product for software debugging with execution match determinations, the computer program product disposed upon a computer readable memory, wherein the computer readable memory is not a

Assignees

Inventors

Classifications

  • G06F11/362Primary

    Debugging of software · CPC title

  • Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9009678B2 cover?
Software debugging with execution match determinations, including: inserting, by a compiler while compiling source code into a debuggable program, a phantom breakpoint at every line of source code; including in the debuggable program, by the compiler, a breakpoint handling module and an exit handler; executing the debuggable program including encountering one or more of the phantom breakpoints …
Who is the assignee on this patent?
Bates Cary L, IBM
What technology area does this patent fall under?
Primary CPC classification G06F11/362. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 14 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).