diff --git a/src/main/java/gr/gousiosg/javacg/dyn/Instrumenter.java b/src/main/java/gr/gousiosg/javacg/dyn/Instrumenter.java index 3aee29b8..c516d2ec 100644 --- a/src/main/java/gr/gousiosg/javacg/dyn/Instrumenter.java +++ b/src/main/java/gr/gousiosg/javacg/dyn/Instrumenter.java @@ -171,11 +171,11 @@ private void enhanceMethod(CtBehavior method, String className) methodName = ""; method.insertBefore("gr.gousiosg.javacg.dyn.MethodStack.push(\"" + className - + ":" + methodName + "\");"); + + ":" + methodName + "\",$args);");// ADDED: $args which is an object array of the parameters method.insertAfter("gr.gousiosg.javacg.dyn.MethodStack.pop();"); } private static void err(String msg) { //System.err.println("[JAVACG-DYN] " + msg); } -} \ No newline at end of file +} diff --git a/src/main/java/gr/gousiosg/javacg/dyn/MethodStack.java b/src/main/java/gr/gousiosg/javacg/dyn/MethodStack.java index 90cc7a0f..26ea8a29 100644 --- a/src/main/java/gr/gousiosg/javacg/dyn/MethodStack.java +++ b/src/main/java/gr/gousiosg/javacg/dyn/MethodStack.java @@ -81,7 +81,9 @@ public int compare(Object o1, Object o2) { sb = new StringBuffer(); } - public static void push(String callname) throws IOException { + + public static void push(String callname, Object [] argM) throws IOException {// added the object array in to pass the parameters to the + // funciton in. if (threadid == -1) threadid = Thread.currentThread().getId(); @@ -98,8 +100,21 @@ public static void push(String callname) throws IOException { sb.setLength(0); sb.append(">[").append(stack.size()).append("]"); sb.append("[").append(Thread.currentThread().getId()).append("]"); - sb.append(callname).append("=").append(System.nanoTime()).append("\n"); + if (!stack.isEmpty()) { sb.append(stack.peek()); } + sb.append(" ---> ").append(callname).append("=").append(System.nanoTime()).append("\n");// added in stack peek so it will also print the calling class + + sb.append("Formal Param Types: "); + + for(Object ob : argM) + { + sb.append(" ").append(ob.getClass().getName()); // GET THE PARAMETERS AND PRINT THE TYPE. + } + + sb.append("\n"); + fw.write(sb.toString()); + + stack.push(callname); } @@ -112,9 +127,9 @@ public static void pop() throws IOException { String returnFrom = stack.pop(); sb.setLength(0); - sb.append("<[").append(stack.size()).append("]"); + sb.append("\n\n<[").append(stack.size()).append("]"); sb.append("[").append(Thread.currentThread().getId()).append("]"); - sb.append(returnFrom).append("=").append(System.nanoTime()).append("\n"); + sb.append(returnFrom).append("=").append(System.nanoTime()).append("\n\n"); fw.write(sb.toString()); } -} \ No newline at end of file +}