TRACERJD: GENERIC TRACE-BASED DYNAMIC DEPENDENCE ANALYSIS WITH FINE-GRAINED LOGGING
Supported by ONR Award N000141410037 SANER 2015
Haipeng Cai and Raul Santelices Department of Computer Science and Engineering University of Notre Dame
TRACERJD: GENERIC TRACE-BASED DYNAMIC DEPENDENCE ANALYSIS WITH - - PowerPoint PPT Presentation
TRACERJD: GENERIC TRACE-BASED DYNAMIC DEPENDENCE ANALYSIS WITH FINE-GRAINED LOGGING Haipeng Cai and Raul Santelices Department of Computer Science and Engineering University of Notre Dame Supported by ONR Award N000141410037 SANER 2015
Supported by ONR Award N000141410037 SANER 2015
Haipeng Cai and Raul Santelices Department of Computer Science and Engineering University of Notre Dame
Testing/ Debugging Reverse Engineering Performance
Program
2
Testing/ Debugging Reverse Engineering Performance
Program Inputs
3
Some tools monitor high-level system states (e.g., network traffic, resource usage, …) Some reports coarse-level runtime conditions (function invocations, exception trace, …) DTrace Valgrind JTracer JavaTracer
…… ……
Others are applicable to specific tasks only (dynamic slicing, execution reduction, …) JavaSlicer Code- Investigator ……
4
Only few techniques available capture fine-grained source-level dynamic dependence information that supports a variety of dependence-based applications
5
Offers generic/common fine-grained dynamic dependence information to support various applications
6
TracerJD
7
Structured logging of execution events
Method calls/returns Statement
Variable definitions/uses
Dynamic dependence querying subroutines Hierarchical trace indexing
Trace Method events Statement events Variable events … … …
Application tools
Dynamic slicer Performance profiler
……
Instrumentation time
8
6.7 15.1 143.3 324.9 50 100 150 200 250 300 350 Schedule1 NanoXML XML-security JMeter
static analysis time (secs)
Runtime slowdown
9
12 13 10 2 1x 3x 5x 7x 9x 11x 13x 15x Schedule1 NanoXML XML-security JMeter
Factor of runtime slowdown
Storage costs
10
125.3 36.1 44.6 13.6 50 100 150 Schedule1 NanoXML XML-security JMeter
Total trace size (MB)
2.0 2.1 3.2 2.7 1x 2x 2x 3x 3x 4x Schedule1 NanoXML XML-security JMeter
Factor of code size growth
Scenario 1: dynamic slicing
11
TracerJD - dynamic dependence querying subroutines
Last definition Last predicate Transitively traverse backward dependencies
criterion slice
Scenario 2: performance profiling
12
TracerJD - dynamic dependence querying subroutines
Statement instances Compute time elapses between instances
Set of statements Execution- time report Timing flag
13 Conclusions
A framework that provides generic dynamic
dependence information to support various applications
An effective trace indexing scheme that
enables efficient dynamic-dependence querying
Two example client analyses that offer readily
utilities and demonstrate the flexibility of building diverse applications
14
Office of Naval Research for funding All of you for time and attention
15