My primary research interests involve custom runtimes to efficiently track program executions for safety or program understanding purposes, instead of traditional applications such as profiling. Most of this work is being done on the Java Virtual Machine, because the JVM's bytecodes have so much metadata attached to them that you don't even need source to be able to do nifty analyses.
The Program Query Language runtime matching system is the most direct fruit of this. It also ties into many of the advanced static analyses done my by group. You can see the full suite of papers on the SUIF Program Analysis page.
Most recently, I've been tying PQL matching machinery into stock model checkers to get more systematic results out of the dynamic side of the analysis. My most recent talk on the subject has slides available.