diff --git a/binaries/jars/cuitraceclient.jar b/binaries/jars/cuitraceclient.jar index 895dbe8..947601f 100644 Binary files a/binaries/jars/cuitraceclient.jar and b/binaries/jars/cuitraceclient.jar differ diff --git a/binaries/jars/guitraceclient.jar b/binaries/jars/guitraceclient.jar index bb2132b..e1951fd 100644 Binary files a/binaries/jars/guitraceclient.jar and b/binaries/jars/guitraceclient.jar differ diff --git a/binaries/jars/traceagent.jar b/binaries/jars/traceagent.jar index 5f4575d..87c3c7d 100644 Binary files a/binaries/jars/traceagent.jar and b/binaries/jars/traceagent.jar differ diff --git a/org.intrace.test/lib/traceagent.jar b/org.intrace.test/lib/traceagent.jar index 23b7f63..87c3c7d 100644 Binary files a/org.intrace.test/lib/traceagent.jar and b/org.intrace.test/lib/traceagent.jar differ diff --git a/org.intrace.test/src/org/test/intrace/TraceExample.java b/org.intrace.test/src/org/test/intrace/TraceExample.java index cfd49b4..869439f 100644 --- a/org.intrace.test/src/org/test/intrace/TraceExample.java +++ b/org.intrace.test/src/org/test/intrace/TraceExample.java @@ -19,7 +19,7 @@ public class TraceExample while(true) { Thread.sleep(1000); - InnerTest.foo(); + InnerTestClass.foo(); workMethod("foobar"); } } @@ -44,7 +44,7 @@ public class TraceExample System.setProperty("a",Arrays.toString(intArg)); } - private static class InnerTest + private static class InnerTestClass { private static void foo() { diff --git a/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java b/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java index 37976a3..8a1d51d 100644 --- a/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java +++ b/org.intrace/src/org/intrace/agent/InstrumentedClassWriter.java @@ -8,7 +8,6 @@ import java.util.Map; import java.util.Set; import org.intrace.output.AgentHelper; -import org.objectweb.asm.Attribute; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.Label; @@ -114,13 +113,6 @@ public class InstrumentedClassWriter extends ClassWriter } } - // MCHR: Need to preserve Synthetic attribute - @Override - public void visitAttribute(Attribute attr) - { - super.visitAttribute(attr); - } - /** * Initial entry point - generate ENTRY call. */ @@ -287,6 +279,13 @@ public class InstrumentedClassWriter extends ClassWriter if (xiOpCode == Opcodes.RETURN) { + // Ensure that cTor entry call gets written even if the cTor is + // implicit and therefore has only a single line number. + if (ctorEntryState == CTorEntryState.SEEN_SPECIAL) + { + addEntryCalls(); + ctorEntryState = CTorEntryState.ENTRY_WRITTEN; + } generateCallToAgentHelper(InstrumentationType.EXIT, lineNumber); } super.visitInsn(xiOpCode);