|
University of Pittsburgh
- Department of Computer Science
Project Members
Faculty: Bruce
R. Childers,
Mary Lou Soffa
Graduate
Students: Jonathan Misurda
Undergraduate
Students: Lidiya Ber
Alumni:
Kevin Cammarata,
Tom Kane, Madhuri Vemulapalli
Background
The InT3 Project (Instrumentation for
Testing, Tracing, & Timing)
sets out to create a framework for various software testing
techniques through the use of fast breakpoints. The project was started as
the Master's Thesis work of Madhuri Vemulapalli. She designed the proof
of concept tools using the
Jikes RVM
as her framework.
Jikes
RVM
The
Jikes Research Virtual Machine is an open source just-in-time virtual machine
created at IBM T.J. Watson Research Center. It was developed
to allow for research into areas of VM design and compilation, such
as dynamic optimization and garbage collection. The RVM is unique in
the fact that it is itself written in Java and is freely modifiable,
allowing for the addition of new functionality.
Approach
Our framework allows to dynamically insert and
remove fast breakpoints as required by the testing scheme in order to
collect the required information with minimal overhead. Such
can be achieved by inserting an initial static breakpoint at the first
basic block, which in turn will dynamically insert the subsequent
breakpoints.
According to our scheme the
breakpoint at block1 is removed after gathering the user-specified
information and placing breakpoints at block2 and block3. When the
control proceeds down to block3, the breakpoint is executed,
removed, and the original code is executed. The breakpoint works by
jumping to the trampoline, which performs a context switch and calls the
testing-specific functional code, f( ). In branch coverage testing,
the functional code would record branch
1->3 as being hit, place breakpoint at block4, and remove itself.
All subsequent executions of the path would be uninstrumented.
|