IP Library Granted Patent US 9,772,927
Granted Patent B2
US 9,772,927 · App. 15/036,325 · Granted Sep 26, 2017

User interface for selecting tracing origins for aggregating classes of trace data

Inventors: Alexander G. Gounares (Kirkland, WA); Bryce B. Baril (Lynnwood, WA); Charles D. Garrett (Woodinville, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/3636G06F3/0482G06F3/0484G06F11/079G06F11/0709G06F11/302G06F11/3065G06F11/34G06F11/3495G06F17/00G06T11/206
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 9,772,927
App. No.
15/036,325
Granted
Sep 26, 2017
Kind
B2
Abstract

A tracing system may define an origin for consolidating and comparing trace paths within a traced application. A tracer may define an identifier that may be passed through a tracing route, and the identifier may be defined to capture specific instances or groups of instances of traces. The traces may be consolidated into a graphical representation of the program flow. The identifier may be passed across various boundaries, including function boundaries, library boundaries, application boundaries, device boundaries. An analysis system may consolidate or aggregate trace results having the same identifier, and may render such data graphically or provide statistics using the identified datasets.

Claims (46)

1. A method performed on at least one processor, said method comprising:

receiving trace data of an application, said application comprising a plurality of components;

analyzing said trace data of said application to generate a first topology graph of said application, said first topology graph of said application comprising representations of said plurality of components;

displaying said first topology graph of said application in an interactive user interface;

receiving a first selection from a user input device, said first selection comprising a first component within said first topology graph of said application;

receiving a second selection from said user input device, said second selection comprising a first condition for tracing execution paths passing through said first component within said first topology graph of said application; and

creating a tracer rule associated with said first component within said first topology graph of said application to store said first condition for tracing said execution paths passing through said first component within said first topology graph of said application.

2. The method of claim 1 , said first topology graph of said application being generated from trace data gathered by monitoring said application and identifying said plurality of components within said trace data.

3. The method of claim 2 further comprising:

displaying a second topology graph of said application in said interactive user interface, said second topology graph comprising trace data organized at least in part by said tracer rule.

4. The method of claim 3 , said tracer rule being consumed by a tracer to classify at least one execution path of said application.

5. The method of claim 4 , said tracer rule being consumed by a tracer to classify execution paths into a plurality of classifications.

6. The method of claim 1 further comprising:

presenting a user selection interface comprising a plurality of classification suggestions, said second selection from said user input device being selected from said plurality of classification suggestions.

7. The method of claim 6 further comprising:

analyzing tracer data for said application to determine a plurality of input values for said first component within said first topology graph of said application; and

presenting at least a subset of said plurality of input values as said plurality of classification suggestions.

8. The method of claim 6 further comprising:

analyzing tracer data for said application to determine a plurality of execution paths organized by frequency of use; and

presenting at least a subset of said plurality of execution paths as said plurality of classification suggestions.

9. The method of claim 6 further comprising:

analyzing tracer data for said application to determine a plurality of execution paths organized by errors detected; and

presenting at least a subset of said plurality of execution paths as said plurality of classification suggestions.

10. The method of claim 6 further comprising:

analyzing tracer data for said application to determine a plurality of execution paths organized by a performance metric; and

presenting at least a subset of said plurality of execution paths as said plurality of classification suggestions.

11. A system comprising:

at least one processor;

a trace database comprising trace data gathered from tracing an application;

an analysis engine that:

receives trace data of said application, said application comprising a plurality of components; and

analyzes said trace data of said application to generate a first topology graph of said application, said first topology graph of said application comprising representations of said plurality of components; and

an interactive user interface presented on a device comprising said at least one processor, said interactive user interface that:

displays said first topology graph of said application;

receives a first selection from a user input device, said first selection comprising a first component within said first topology graph of said application;

receives a second selection from said user input device, said second selection comprising a first condition for tracing execution paths passing through said first component within said first topology graph of said application; and

creates a tracer rule associated with said first component within said first topology graph of said application to store said first condition for tracing said execution paths passing through said first component within said first topology graph of said application.

12. The system of claim 11 , said interactive user interface that further:

presents a user selection interface comprising a plurality of classification suggestions, said second selection from said user input device being selected from said plurality of classification suggestions.

13. The system of claim 12 , said analysis engine that further:

analyzes tracer data for said application to determine a plurality of input values for said first component within said first topology graph of said application;

said interactive user interface that further:

presents at least a subset of said plurality of input values as said plurality of classification suggestions.

14. The system of claim 13 , said analysis engine that further determines said plurality of input values from a plurality of execution paths classified by frequency of use.

15. The system of claim 13 , said analysis engine that further determines said plurality of input values from a plurality of execution paths classified by errors detected.

16. The system of claim 13 , said analysis engine that further determines said plurality of input values from a plurality of execution paths classified by a performance metric.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: GOUNARES, ALEXANDER G.; BARIL, BRYCE B.; GARRETT, CHARLES D.
To: CONCURIX CORPORATION
Reel/Frame 043175/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: GOUNARES, ALEXANDER G.; BARIL, BRYCE B.; GARRETT, CHARLES D.
To: CONCURIX CORPORATION
Reel/Frame 043175/0196 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: GOUNARES, ALEXANDER G.; BARIL, BRYCE B.; GARRETT, CHARLES D.
To: CONCURIX CORPORATION
Reel/Frame 043175/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: CONCURIX CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043158/0247 →
Continuity (4)
Provisional Application 61903775 · Nov 13, 2013
Provisional Application 61903781 · Nov 13, 2013
Provisional Application 61903786 · Nov 13, 2013
Related Publication 20160283345A1 · Sep 29, 2016