Autonomous vehicle simulation system
US-2024001921-A1 · Jan 4, 2024 · US
US9009678B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9009678-B2 |
| Application number | US-201113170846-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 28, 2011 |
| Priority date | Jun 28, 2011 |
| Publication date | Apr 14, 2015 |
| Grant date | Apr 14, 2015 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
Debugging of software · CPC title
Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.