whole_func_string: function(context, functionName, callback) {
  	        context = context || window;
  	        var original = context[functionName];
  	        context[functionName] = function instrumented() {
  	            callback.call(this, printStackTrace().slice(4));
  	            return context[functionName]._instrumented.apply(this, arguments);
  	        };
  	        context[functionName]._instrumented = original;
  	    }
func_code_string: function(context, functionName, callback) {
  	        context = context || window;
  	        var original = context[functionName];
  	        context[functionName] = function instrumented() {
  	            callback.call(this, printStackTrace().slice(4));
  	            return context[functionName]._instrumented.apply(this, arguments);
  	        };
  	        context[functionName]._instrumented = original;
  	    }
func_documentation_string: Given a context, function name, and callback function, overwrite it so that it calls
  printStackTrace() first with a callback and then runs the rest of the body.
  
  @param {Object} context of execution (e.g. window)
  @param {String} functionName to instrument
  @param {Function} callback function to call with a stack trace on invocation