Academic
Publications
Semantics-aware trace analysis

Semantics-aware trace analysis,10.1145/1542476.1542527,Kevin J. Hoffman,Patrick Eugster,Suresh Jagannathan

Semantics-aware trace analysis   (Citations: 6)
BibTex | RIS | RefWorks Download
As computer systems continue to become more powerful and com- plex, so do programs. High-level abstractions introduced to deal with complexity in large programs, while simplifying human rea- soning, can often obfuscate salient program properties gleaned from automated source-level analysis through subtle (often non- local) interactions. Consequently, understanding the effects of pro- gram changes and whether these changes violate intended protocols become difficult to infer. Refactorings, and feature additions, mod- ifications, or removals can introduce hard-to-catch bugs that often go undetected until many revisions later. To address these issues, this paper presents a novel dynamic pro- gram analysis that builds a semantic view of program executions. These views reflect program abstractions and aspects; however, views are not simply projections of execution traces, but are linked to each other to capture semantic interactions among abstractions at different levels of granularity in a scalable manner. We describe our approach in the context of Java and demonstrate its utility to improve regression analysis. We first formalize a subset of Java and a grammar for traces generated at program execution. We then introduce several types of views used to analyze regression bugs along with a novel, scalable technique for semantic differenc- ing of traces from different versions of the same program. Bench- mark results on large open-source Java programs demonstrate that semantic-aware trace differencing can identify precise and useful details about the underlying cause for a regression, even in pro- grams that use reflection, multithreading, or dynamic code genera- tion, features that typically confound other analysis techniques. Categories and Subject Descriptors D.2.5 (Software Engineer- ing): Testing and Debugging—debugging aids, diagnostics, testing tools, tracing
Cumulative Annual
View Publication
The following links allow you to view full publications. These links are maintained by other sources not affiliated with Microsoft Academic Search.
    • ...Homan et al. [16] presented another approach to determining the dierence between program versions...

    Raymond P. L. Buseet al. Automatically documenting program changes

    • ...For instance, comparing executions of two versions of a program with the same input can be used to isolate regression faults [10], and analyze the impact of code changes [17]...
    • ...For example, regression debugging [10] and computing cause transitions [22] rely on contrasting variable values in a passing run and a failing run to identify faulty values...
    • ...It plays a part in debugging and regression analyses [17, 10, 7], among others...
    • ...There has been recent work on comparing executions for debugging regression faults [10], analyzing impact of code changes [17], and finding matching statements across program versions [7]...

    William N. Sumneret al. Memory indexing: canonicalizing addresses across executions

    • ...Dierential analysis can be used to automatically generate new inputs that are similar to a failing input but do not induce a failure [12, 5]. Comparing such inputs with the failing input often provides critical clues to the cause of failure...

    Shuvendu K. Lahiriet al. Differential static analysis: opportunities, applications, and challen...

    • ...Although recent works exist in dynamic analysis using semantic based techniques to analyze traces [12], to our knowledge, no work exist on modeling both dynamic program information nor...

    Newres Al Haideret al. An approach for modeling dynamic analysis using ontologies

    • ...In addition to the static techniques, a variety of dynamic techniques exist to capture behavioral changes [19, 26, 27].,Some of these approaches [19, 26] use symbolic execution for better debugging of regression failures...

    Ming Kawaguchiet al. Conditional equivalence

Sort by: