New code is added to existing object code in order to add new
functionality. For example, a call to start a profiler function can be
added at the beginning of a Java method and a call to stop the profiler
function can be added at the exits of the Java method. A method may have
many different exits. To insure that the profiler process is stopped
regardless of which exit is performed, the byte code and exception table
are modified.