Encapsulating and managing diagnostic information

US9582394B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9582394-B2
Application numberUS-82499210-A
CountryUS
Kind codeB2
Filing dateJun 28, 2010
Priority dateJul 30, 2009
Publication dateFeb 28, 2017
Grant dateFeb 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The disclosed embodiments provide a system that encapsulates and manages diagnostic information. During operation, the system detects an event that generates diagnostic information, and stores this diagnostic information in a format that preserves semantic information associated with the event. The system also determines an output context (e.g., the intended target environment) for the diagnostic information, and then uses the preserved semantic information to output the diagnostic information in a context-sensitive format suited for the output context. Note that outputting customized diagnostic information that is adapted to a specific target environment facilitates improving the quality of diagnostic information presented to a user.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: detecting an event that causes a compiler to generate diagnostic information; storing the diagnostic information for the event in a manner that preserves semantic information associated with the event; receiving diagnostic information at a particular development tool, wherein the diagnostic information was generated by the compiler while compiling source code for a program created using the development tool, wherein the diagnostic information has a structured representation that is configured to be plugged into at least one diagnostic formatter from a set of diagnostic formatters, which comprises: a raw diagnostic formatter that outputs diagnostic information using an internal format of the compiler for diagnostic information; a tunneling diagnostic formatter that encodes the diagnostic information into a structured XML document; a rich diagnostic formatter that performs the following modifications to the diagnostic information: localizing the diagnostic output; shortening a unique name in the diagnostic information while preserving the name's uniqueness; lengthening a clashing name in the diagnostic information to make the clashing name unique; and adding a where clause to the diagnostic information that provides additional type information for variables in the diagnostic information; selecting the raw diagnostic formatter from the set of diagnostic formatters based on a particular output context for the particular development tool; using the raw diagnostic formatter to modify at least a particular part of the diagnostic information before presenting the particular part of the diagnostic information to a user through the particular development tool; selecting the rich diagnostic formatter from the set of diagnostic formatters; tunneling the diagnostic information through one or more intermediate application layers to a subsequent development tool; using the rich diagnostic formatter to modify at least a subsequent part of the diagnostic information before presenting the subsequent part of the diagnostic information to the user through the subsequent development tool; comparing the modified particular part of the diagnostic information or the modified subsequent part of the diagnostic information to a reference diagnostic output generated by a reference compiler; and presenting the modified particular part of the diagnostic information to the user through the particular development tool, the modified subsequent part of the diagnostic information to the user through the subsequent development tool and results of the comparison to the reference diagnostic output. 2. The method of claim 1 , wherein presenting the diagnostic information a particular diagnostic tool and a subsequent diagnostic tool comprises one of: presenting the diagnostic information through the particular diagnostic tool simultaneously with presenting the diagnostic information through the subsequent diagnostic tool; and presenting the diagnostic information through the subsequent diagnostic tool after presenting the diagnostic information through the particular diagnostic tool. 3. The method of claim 1 , wherein prior to receiving the diagnostic information at the particular development tool, the method further comprises generating the diagnostic information at the compiler by performing the following operations: while attempting to compile the source code at the compiler, detecting an event that causes the compiler to generate the diagnostic information; and storing the diagnostic information for the event in the structured representation in a manner that preserves semantic information associated with the event. 4. The method of claim 3 , wherein the structured representation for the diagnostic information includes the following information: an identifier that uniquely identifies an underlying diagnostic issue; an identifier for a file containing source code associated with the underlying diagnostic issue; position information specifying a location in the source code associated with the underlying diagnostic issue; and additional information about the underlying diagnostic issue. 5. The method of claim 1 , wherein transforming the diagnostic information includes varying one or more of the following based on the output context: a length of the outputted diagnostic information; a level of detail for the outputted diagnostic information; and a level of verbosity for the outputted diagnostic information. 6. The method of claim 1 , wherein the diagnostic information passes through one or more intermediate application layers before being presented to the user; and wherein modifying the diagnostic information comprises encoding the diagnostic information in an output format that facilitates passing the diagnostic information through the one or more intermediate application layers while preserving the semantic information associated with the event. 7. The method of claim 1 , wherein the set of diagnostic formatters further includes a tunneling diagnostic formatter that facilitates tunneling the diagnostic information through one or more intermediate application layers to a software development tool. 8. The method of claim 1 , wherein presenting modified diagnostic information to the user additionally includes doing one or more of the following: adjusting the modified diagnostic information based on a type of event that caused the diagnostic information to be generated; and adjusting the modified diagnostic information based on a source of the event that caused the diagnostic information to be generated. 9. The method of claim 1 , wherein at least one of the diagnostic formatters causes one or more filepaths within the diagnostic information to be canonicalized. 10. The method of claim 1 , wherein at least one of diagnostic formatter modes causes the diagnostic output to be localized. 11. One or more non-transitory computer-readable storage media storing instructions that when executed by a computer cause the computer to perform a method, the method comprising: detecting an event that causes a compiler to generate diagnostic information; storing the diagnostic information for the event in a manner that preserves semantic information associated with the event; receiving diagnostic information at a particular development tool, wherein the diagnostic information was generated by the compiler while compiling source code for a program created using the development tool, wherein the diagnostic information has a structured representation that is configured to be plugged into at least one diagnostic formatter from a set of diagnostic formatters, which comprises: a raw diagnostic formatter that outputs diagnostic formatter that outputs diagnostic information using an internal format of the compiler for diagnostic information; a tunneling diagnostic formatter that encodes the diagnostic information into a structured XML document; a rich diagnostic formatter that performs the following modifications to the diagnostic information: localizing the diagnostic output; shortening a unique name in the diagnostic information while preserving the name's uniqueness; lengthening a clashing name in the diagnostic information to make the clashing name unique; and adding a where clause to the diagnostic information that provides additional type information for variables in the diagnostic information; selecting the raw diagnostic formatter from the set of diagnostic formatters based on a particular output context for the particular development tool; using the raw diagnostic formatter to modify at least a particular part of the diagnostic information bef

Assignees

Inventors

Classifications

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

  • G06F11/327Primary

    Alarm or error message display · CPC title

  • Physics · mapped topic

  • Environments for analysis, debugging or testing of software · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9582394B2 cover?
The disclosed embodiments provide a system that encapsulates and manages diagnostic information. During operation, the system detects an event that generates diagnostic information, and stores this diagnostic information in a format that preserves semantic information associated with the event. The system also determines an output context (e.g., the intended target environment) for the diagnost…
Who is the assignee on this patent?
Cimadamore Maurizio, Gibbons Jonathan J, Buckley Alexander R, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F11/327. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).