A conditional breakpoint for debugging computer programming code includes a condition identifying of one or more expected code paths used to reach the breakpoint. The breakpoint is triggered if it is reached during execution using an unexpected code path. Preferably, an expected code path is identified by specifying the expected preceding breakpoint, by specifying basic code blocks which should or should not be encountered before the breakpoint, or some combination thereof. The expected code path condition may be used alone or in conjunction with any conventional breakpoint condition.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer program product for analyzing a developing computer program, comprising: a plurality of executable instructions recorded on a non-transitory computer recordable type media, wherein said instructions, when executed by at least one processor of a digital computing device, cause the device to perform the steps of: receiving a user-specified definition of a plurality of breakpoints for said developing computer program, at least one of said breakpoints including a respective expected code path condition; monitoring said plurality of breakpoints during execution of said developing computer program; with respect to each breakpoint including a respective expected code path condition encountered during execution of said developing computer program, determining whether an actual code path taken during execution of said developing computer program matches the respective expected code path condition of the encountered breakpoint; and halting execution of said developing computer program if said actual code path taken during execution of said developing computer program does not match the expected code path condition regardless of the condition of any key variable specified as a condition of the conditional breakpoint.
2. The program product of claim 1 , wherein said program product is an integrated programming development environment comprising a source editor, a compiler, and a debugger.
3. The program product of claim 1 , wherein said step of receiving a user-specified definition of a plurality of breakpoints comprises, for said at least one breakpoint including a respective expected code path condition, receiving a user-specified definition of a respective set of expected predecessor breakpoints.
4. The program product of claim 1 , wherein said step of receiving a user-specified definition of a plurality of breakpoints comprises, for said at least one breakpoint including a respective expected code path condition, receiving a user-specified definition of a respective set of basic blocks required to be encountered during execution before the respective breakpoint.
5. The program product of claim 1 , wherein said step of receiving a user-specified definition of a plurality of breakpoints comprises, for said at least one breakpoint including a respective expected code path condition, receiving a user-specified definition of a respective set of basic blocks prohibited from being encountered during execution before the respective breakpoint.
6. The program product of claim 1 , wherein said step of receiving a user-specified definition of a plurality of breakpoints comprises, for at least one of said breakpoints including a respective expected code path condition, receiving a user-specified definition of at least one respective additional condition.
7. The program product of claim 6 , wherein said step of halting execution of said program is performed if said actual code path taken during execution of said computer program does not match the expected code path condition, or if said at least one respective additional condition is met.
8. The program product of claim 1 , wherein said step of receiving a user-specified definition of a plurality of breakpoints comprises the steps of: displaying code statements of said computer program to a user; interactively receiving a user selection of a code statement as the location of a breakpoint having an expected code path condition; responsive to receiving said user selection, displaying code statements which necessarily execute before the selected code statement in a highlighted form; and interactively receiving a user selection of said expected code path condition.
9. The program product of claim 8 , wherein said step of interactively receiving a user selection of said expected code path condition comprises: interactively receiving a user selection of a code statement as the location of a basic block of code with which an expectation with respect to code path during execution is associated; responsive to receiving said user selection of a code statement as the location of a basic block, determining the basic block to which the selected code statement belongs; displaying code statements in the basic block containing said selected code statement in a highlighted form.
10. The program product of claim 9 , wherein said program product further causes the digital computing device to perform the step of: interactively receiving a user indication of said expectation with respect to code path during execution associated with the basic block containing the selected code statement; wherein said step of displaying code statements in the basic block containing the selected code statement in a highlighted form comprises displaying said statements in a first highlighted form responsive to a user indication of a first expectation with respect to code path during execution, and displaying said statements in a second highlighted form responsive to a user indication of a second expectation with respect to code path during execution, said second highlighted form being visually distinct from said first highlighted form.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 31, 2007
January 3, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.