
|
 |
    |
About
Although today's managed languages have eliminated or minimized many
low-level software errors (such as core dumps due to memory
corruption) there are many other sources of errors that still persist.
Test environments are not adequate to simulate the real scenarios in
which applications will eventually run. Debugging live, deployed
software is still a significant problem.
The Quality Virtual Machine (QVM) is a system that
uses the technology and infrastructure available in a virtual machine
to improve software quality.
QVM provides a framework for easily building dynamic analyses into the
VM, continuing the general trend of using additional hardware resources
at runtime to help find and/or eliminate bugs.
The virtual machine execution model presents an excellent mechanism
for implementing dynamic analyses for at least two reasons:
- The deployment process becomes trivial because the
analyses become as ubiquitous as the VM. There is no
need to ``install'' the analysis (recompile the program
source to add instrumentation, etc). The analysis can
be run by simply enabling a command line flag on the
VM, if the are not already performed by default.
- Having a dynamic analysis tightly integrated in a
virtual machine has performance advantages. Having
access to the dynamic optimizer (JIT) ensures that the
critical code paths are well optimized. Moreover,
being inside the VM provides access to VM runtime
services that cannot be accessed at the language level,
such as verifying heap properties during garbage
collection.
If you are interested in an internship in this area, please contact us over e-mail (marnold@us.ibm.com, mtvechev@us.ibm.com, eyahav@us.ibm.com).
|
|