TRACERJD: GENERIC TRACE-BASED DYNAMIC DEPENDENCE ANALYSIS WITH - - PowerPoint PPT Presentation

tracerjd generic trace based dynamic dependence analysis
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

Context Program-dependence Analysis

Testing/ Debugging Reverse Engineering Performance

  • ptimization Evolution ……

Program

2

slide-3
SLIDE 3

Context Dynamic Dependence Analysis

Testing/ Debugging Reverse Engineering Performance

  • ptimization Evolution ……

Program Inputs

3

slide-4
SLIDE 4

Status-quo

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

slide-5
SLIDE 5

Problem

Only few techniques available capture fine-grained source-level dynamic dependence information that supports a variety of dependence-based applications

tool supports

?

5

slide-6
SLIDE 6

Approach

Offers generic/common fine-grained dynamic dependence information to support various applications

6

TracerJD

Many specific tools can be built upon it

slide-7
SLIDE 7

TracerJD

7

Structured logging of execution events

Method calls/returns Statement

  • ccurrence

Variable definitions/uses

Dynamic dependence querying subroutines Hierarchical trace indexing

Trace Method events Statement events Variable events … … …

Application tools

Dynamic slicer Performance profiler

……

slide-8
SLIDE 8

Performance

 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)

slide-9
SLIDE 9

Performance

 Runtime slowdown

9

12 13 10 2 1x 3x 5x 7x 9x 11x 13x 15x Schedule1 NanoXML XML-security JMeter

Factor of runtime slowdown

slide-10
SLIDE 10

Performance

 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

slide-11
SLIDE 11

Use scenarios

 Scenario 1: dynamic slicing

11

TracerJD - dynamic dependence querying subroutines

Last definition Last predicate Transitively traverse backward dependencies

criterion slice

slide-12
SLIDE 12

Use scenarios

 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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

Acknowledgements

14

Office of Naval Research for funding All of you for time and attention

slide-15
SLIDE 15

Q&A

PLEASE ASK QUESTIONS

15