Historical control flow visualization in production diagnostics
First Claim
1. A system comprising:
- at least one processor;
a memory connected to the at least one processor; and
a diagnostic tool comprising;
at least one program module loaded into the memory, the at least one program module;
creating an instrumentation file that specifies instructions to be dynamically inserted into a function of an application to analyze and collect control flow data associated with invocation of the function without stopping execution of the application; and
providing a visualization of the control flow data associated with invocation of the function, the function comprising a plurality of basic blocks, the visualization including how many times each basic block of the plurality of basic blocks was executed in the invocation of the function.
2 Assignments
0 Petitions
Accused Products
Abstract
A diagnostic tool can dynamically instrument an application to collect program control flow information using one or more non-stopping production breakpoints. Analyzed program control flow information can be displayed. Dynamic code rewriting techniques can be used to change the production software without deploying new source code. The information collected at the non-stopping breakpoint can include the actual control flow that an instance of the production application took to reach the breakpoint in addition to information about the data. The analyzed control flow information can be visualized in a diagnostic tool allowing a user to see the path an execution of the program took to arrive at a particular breakpoint.
-
Citations
20 Claims
-
1. A system comprising:
-
at least one processor; a memory connected to the at least one processor; and a diagnostic tool comprising; at least one program module loaded into the memory, the at least one program module; creating an instrumentation file that specifies instructions to be dynamically inserted into a function of an application to analyze and collect control flow data associated with invocation of the function without stopping execution of the application; and providing a visualization of the control flow data associated with invocation of the function, the function comprising a plurality of basic blocks, the visualization including how many times each basic block of the plurality of basic blocks was executed in the invocation of the function. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
dynamically inserting by at least one processor of a computing device into a function of an application, instructions comprising at least one non-stopping breakpoint, the instructions specified in an instrumentation file; analyzing and collecting control flow data associated with invocation of the function without stopping execution of the application; and visualizing at least one basic block comprising the invoked function and a number of times the at least one basic block was executed. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A device, comprising:
-
at least one processor and a memory;
the at least one processor configured to;create an instrumentation file comprising debug statements comprising non-stopping breakpoints; gather control flow information local to a particular function invocation in an application; and create a visualization of the control flow information, the visualization comprising at least one basic block comprising the invoked function and a number of times the at least one basic block was executed. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification