IP Library Granted Patent US 8,429,613
Granted Patent B2
US 8,429,613 · App. 11/590,128 · Granted Apr 23, 2013

Stepping and application state viewing between points

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 8,429,613
App. No.
11/590,128
Granted
Apr 23, 2013
Kind
B2
Abstract

Various technologies and techniques are disclosed for providing stepping and state viewing in a debugger application. A start and end breakpoint are assigned. Source code execution begins, and upon reaching the start breakpoint, a logging feature begins storing one or more values that may be impacted upon execution of code between the start breakpoint and an end breakpoint. More lines of source code are executed until the end breakpoint is reached. When the end breakpoint is reached, the debugger is put into break mode. While in break mode, a playback feature is provided to allow a user to play back a path of execution that occurred between the start breakpoint and the end breakpoint. The playback feature uses at least some of the values that were stored with the logging feature to show how each referenced variable changed in value.

Claims (30)

1. A method for providing stepping and state viewing in a portion of code via a debugger, the method comprising:

setting, via the debugger, a start breakpoint and an end breakpoint in a portion of code;

executing the portion of code from at least the start breakpoint;

logging, starting at the start breakpoint set in the executing portion of code, values of variables in scope of the portion of code whether or not the values are changed as a result of the executing;

breaking the execution at the end breakpoint set in the executing portion of code resulting in an executed and logged portion of code from the start breakpoint up to the end breakpoint; and

providing, in response to the breaking, the stepping and state viewing in the form of a bi-directional playback feature configured to play back a path of the executed and logged portion of code, and further configured to show to a user via the bi-directional playback feature the logged values of the variables at each point of execution of the executed and logged portion of code;

wherein the method is performed by a computing device.

2. The method of claim 1 , wherein the bi-directional playback feature is further configured to show to the user an end value of at least one of the values and a current value of the at least one of the values, wherein the end value corresponds to the end breakpoint, and wherein the current value corresponds to a current point in the path.

3. The method of claim 1 further comprising turning off the logging in response to the end breakpoint being reached by the executing.

4. The method of claim 1 , wherein the start breakpoint and the end breakpoint are set by a user.

5. The method of claim 1 , wherein the start breakpoint is set programmatically after a user sets the end breakpoint.

6. The method of claim 5 , wherein the start breakpoint is set programmatically at the beginning of a function that includes the end breakpoint.

7. The method of claim 1 , wherein the logging includes analyzing one or more intermediate language files to help determine the variables in the scope of the portion of code.

8. The method of claim 1 , wherein the bi-directional playback feature is further configured to allow a user to step forward and backward through points of execution between the start breakpoint and the end breakpoint of the executed and logged portion of code.

9. At least one computer-readable storage medium that is not a signal or carrier wave per se having computer-executable instructions that, when executed by a computer, cause the computer to perform a method comprising:

setting, via a debugger, a start breakpoint and an end breakpoint in a portion of code;

executing the portion of code from at least the start breakpoint;

logging, starting at the start breakpoint set in the executing portion of code, values of variables in scope of the portion of code whether or not the values are changed as a result of the executing;

breaking the execution at the end breakpoint set in the executing portion of code resulting in an executed and logged portion of code from the start breakpoint up to the end breakpoint; and

providing, in response to the breaking, the stepping and state viewing in the form of a bi-directional playback feature configured to play back a path of the executed and logged portion of code, and further configured to show to a user via the bi-directional playback feature the logged values of the variables at each point of execution of the executed and logged portion of code.

10. The at least one computer-readable storage medium of claim 9 , wherein the start breakpoint and the end breakpoint are set by a user.

11. The at least one computer-readable storage medium of claim 9 , wherein the start breakpoint is set programmatically after a user sets the end breakpoint.

12. The at least one computer-readable storage medium of claim 11 , wherein the start breakpoint is set programmatically to a beginning section of a function comprising the end breakpoint.

13. The at least one computer-readable storage medium of claim 9 , wherein the playback feature is further configured to allow a user to step forward and backward through points of execution between the start breakpoint and the end breakpoint of the executed and logged portion of code.

14. A system comprising:

a breakpoint feature configured for setting, via a debugger, a start breakpoint and an end breakpoint in a portion of code;

a computing device configured for executing the portion of code from at least the start breakpoint;

a logging feature configured for logging, starting at the start breakpoint set in the executing portion of code, values of variables in scope of the portion of code whether or not the values are changed as a result of the executing;

the breakpoint feature further configured for breaking the execution at the end breakpoint set in the executing portion of code resulting in an executed and logged portion of code from the start breakpoint up to the end breakpoint; and

a bi-directional playback feature configured to operate on the computing device and configured to playback, in response to the breaking, a path of the executed and logged portion of code, and further configured to show to a user the logged values of the variables at each point of execution of the executed and logged portion of code.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2006
From: ROSEN, DOUGLAS J.
To: MICROSOFT CORPORATION
Reel/Frame 018540/0180 →