|
I describe a post-compiler program manipulation called the dyninstAPI, which provides a C++ class library for machine independent program instrumentation during application execution. I will describe how to (safely) modify running programs, and present the API that allows machine independence. I will also describe how the system supports type information, program modification, and its potential use as an off-line binary editor. In addition, I will describe a new TCL-based command line tool we have developed to speed the creation of simple tools that use the API.
In the second half of the talk I will present an overview of the Active Harmony system. Active Harmony is a system for allowing runtime adaptation of applications based on observations of a program's execution environment. In Harmony, applications are written to export a collection of options that allow automatic runtime tuning. For example, I will present results from a database system that can either run queries on the client or the server, and changes this choice based on server load.