String getCallbackFunctionCall(FunctionTrace ft) {
		//Ensure ft is of type ASYNC_CALL
		String type = getLineType(ft);
		if (!type.equals("ASYNC_CALL")) {
			System.out.println("Error: Cannot get callback function call from non-ASYNC_CALL trace");
			System.exit(-1);
		}
		
		//Find which index contains the variable FuncCall
		List<VariableDesc> varDescList = ft.f_decl.var_descs;
		Iterator varDescIt = varDescList.iterator();
		int indexOfFuncCall = -1;
		boolean foundIndex = false;
		int counter = 0;
		while (varDescIt.hasNext() && !foundIndex) {
			VariableDesc varDesc = (VariableDesc)varDescIt.next();
			if (varDesc.getVarName().equals("FuncCall")) {
				indexOfFuncCall = counter;
				foundIndex = true;
			}
			counter++;
		}
		
		if (!foundIndex) {
			System.out.println("Error: Callback function call not stored in ASYNC_CALL");
			System.exit(-1);
		}
		
		String theCall = ft.var_values.get(indexOfFuncCall);
		
		//Strip the leading and trailing quotation marks (note that the dtrace always uses double quotes)
		if (theCall.startsWith("\"") && theCall.endsWith("\"")) {
			theCall = theCall.substring(1,theCall.length()-1);
		}
		
		return theCall;
	}