mirror of https://github.com/mchr3k/org.intrace
Complete adding return value tracing
This commit is contained in:
parent
77addfaecf
commit
d9d572b631
|
|
@ -189,11 +189,12 @@ public class InstrumentedClassWriter extends ClassWriter
|
|||
opcode = Opcodes.ALOAD;
|
||||
}
|
||||
|
||||
mv.visitLdcInsn("Arg");
|
||||
mv.visitLdcInsn(className);
|
||||
mv.visitLdcInsn(methodName);
|
||||
mv.visitVarInsn(opcode, varslot);
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "arg",
|
||||
"(Ljava/lang/String;Ljava/lang/String;"
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "val",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;"
|
||||
+ typeDescriptor + ")V");
|
||||
}
|
||||
}
|
||||
|
|
@ -285,15 +286,49 @@ public class InstrumentedClassWriter extends ClassWriter
|
|||
}
|
||||
generateCallToAgentHelper(InstrumentationType.EXIT, lineNumber);
|
||||
}
|
||||
else if (xiOpCode == Opcodes.IRETURN)
|
||||
else if ((xiOpCode == Opcodes.IRETURN) ||
|
||||
(xiOpCode == Opcodes.LRETURN) ||
|
||||
(xiOpCode == Opcodes.FRETURN) ||
|
||||
(xiOpCode == Opcodes.DRETURN) ||
|
||||
(xiOpCode == Opcodes.ARETURN))
|
||||
{
|
||||
// Duplicate the return value
|
||||
mv.visitInsn(Opcodes.DUP);
|
||||
|
||||
// Push the callname and methodname while keeping the return value#
|
||||
// at the top of the stack
|
||||
mv.visitLdcInsn("Return");
|
||||
mv.visitInsn(Opcodes.SWAP);
|
||||
mv.visitLdcInsn(className);
|
||||
mv.visitInsn(Opcodes.SWAP);
|
||||
mv.visitLdcInsn(methodName);
|
||||
mv.visitInsn(Opcodes.SWAP);
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "arg",
|
||||
"(Ljava/lang/String;Ljava/lang/String;I)V");
|
||||
|
||||
if (xiOpCode == Opcodes.IRETURN)
|
||||
{
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "val",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V");
|
||||
}
|
||||
else if (xiOpCode == Opcodes.LRETURN)
|
||||
{
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "val",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;L)V");
|
||||
}
|
||||
else if (xiOpCode == Opcodes.FRETURN)
|
||||
{
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "val",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;F)V");
|
||||
}
|
||||
else if (xiOpCode == Opcodes.DRETURN)
|
||||
{
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "val",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;D)V");
|
||||
}
|
||||
else if (xiOpCode == Opcodes.ARETURN)
|
||||
{
|
||||
mv.visitMethodInsn(INVOKESTATIC, HELPER_CLASS, "val",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V");
|
||||
}
|
||||
generateCallToAgentHelper(InstrumentationType.EXIT, lineNumber);
|
||||
}
|
||||
super.visitInsn(xiOpCode);
|
||||
|
|
|
|||
|
|
@ -191,173 +191,173 @@ public class AgentHelper
|
|||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, byte byteArg)
|
||||
public static void val(String desc, String className, String methodName, byte byteArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, byteArg);
|
||||
outputHandler.val(desc, className, methodName, byteArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
byte[] byteArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, byteArrayArg);
|
||||
outputHandler.val(desc, className, methodName, byteArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, short shortArg)
|
||||
public static void val(String desc, String className, String methodName, short shortArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, shortArg);
|
||||
outputHandler.val(desc, className, methodName, shortArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
short[] shortArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, shortArrayArg);
|
||||
outputHandler.val(desc, className, methodName, shortArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, int intArg)
|
||||
public static void val(String desc, String className, String methodName, int intArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, intArg);
|
||||
outputHandler.val(desc, className, methodName, intArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, int[] intArrayArg)
|
||||
public static void val(String desc, String className, String methodName, int[] intArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, intArrayArg);
|
||||
outputHandler.val(desc, className, methodName, intArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, long longArg)
|
||||
public static void val(String desc, String className, String methodName, long longArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, longArg);
|
||||
outputHandler.val(desc, className, methodName, longArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
long[] longArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, longArrayArg);
|
||||
outputHandler.val(desc, className, methodName, longArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, float floatArg)
|
||||
public static void val(String desc, String className, String methodName, float floatArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, floatArg);
|
||||
outputHandler.val(desc, className, methodName, floatArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
float[] floatArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, floatArrayArg);
|
||||
outputHandler.val(desc, className, methodName, floatArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, double doubleArg)
|
||||
public static void val(String desc, String className, String methodName, double doubleArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, doubleArg);
|
||||
outputHandler.val(desc, className, methodName, doubleArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
double[] doubleArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, doubleArrayArg);
|
||||
outputHandler.val(desc, className, methodName, doubleArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, boolean boolArg)
|
||||
public static void val(String desc, String className, String methodName, boolean boolArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, boolArg);
|
||||
outputHandler.val(desc, className, methodName, boolArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
boolean[] boolArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, boolArrayArg);
|
||||
outputHandler.val(desc, className, methodName, boolArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, char charArg)
|
||||
public static void val(String desc, String className, String methodName, char charArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, charArg);
|
||||
outputHandler.val(desc, className, methodName, charArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
char[] charArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, charArrayArg);
|
||||
outputHandler.val(desc, className, methodName, charArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName, Object objArg)
|
||||
public static void val(String desc, String className, String methodName, Object objArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, objArg);
|
||||
outputHandler.val(desc, className, methodName, objArg);
|
||||
}
|
||||
}
|
||||
|
||||
public static void arg(String className, String methodName,
|
||||
public static void val(String desc, String className, String methodName,
|
||||
Object[] objArrayArg)
|
||||
{
|
||||
for (IInstrumentationHandler outputHandler : instrumentationHandlers
|
||||
.keySet())
|
||||
{
|
||||
outputHandler.arg(className, methodName, objArrayArg);
|
||||
outputHandler.val(desc, className, methodName, objArrayArg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,41 +19,41 @@ public interface IInstrumentationHandler
|
|||
// Output handling methods
|
||||
public void enter(String className, String methodName, int lineNo);
|
||||
|
||||
public void arg(String className, String methodName, byte byteArg);
|
||||
public void val(String desc, String className, String methodName, byte byteArg);
|
||||
|
||||
public void arg(String className, String methodName, byte[] byteArrayArg);
|
||||
public void val(String desc, String className, String methodName, byte[] byteArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, short shortArg);
|
||||
public void val(String desc, String className, String methodName, short shortArg);
|
||||
|
||||
public void arg(String className, String methodName, short[] shortArrayArg);
|
||||
public void val(String desc, String className, String methodName, short[] shortArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, int intArg);
|
||||
public void val(String desc, String className, String methodName, int intArg);
|
||||
|
||||
public void arg(String className, String methodName, int[] intArrayArg);
|
||||
public void val(String desc, String className, String methodName, int[] intArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, long longArg);
|
||||
public void val(String desc, String className, String methodName, long longArg);
|
||||
|
||||
public void arg(String className, String methodName, long[] longArrayArg);
|
||||
public void val(String desc, String className, String methodName, long[] longArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, float floatArg);
|
||||
public void val(String desc, String className, String methodName, float floatArg);
|
||||
|
||||
public void arg(String className, String methodName, float[] floatArrayArg);
|
||||
public void val(String desc, String className, String methodName, float[] floatArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, double doubleArg);
|
||||
public void val(String desc, String className, String methodName, double doubleArg);
|
||||
|
||||
public void arg(String className, String methodName, double[] doubleArrayArg);
|
||||
public void val(String desc, String className, String methodName, double[] doubleArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, boolean boolArg);
|
||||
public void val(String desc, String className, String methodName, boolean boolArg);
|
||||
|
||||
public void arg(String className, String methodName, boolean[] boolArrayArg);
|
||||
public void val(String desc, String className, String methodName, boolean[] boolArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, char charArg);
|
||||
public void val(String desc, String className, String methodName, char charArg);
|
||||
|
||||
public void arg(String className, String methodName, char[] charArrayArg);
|
||||
public void val(String desc, String className, String methodName, char[] charArrayArg);
|
||||
|
||||
public void arg(String className, String methodName, Object objArg);
|
||||
public void val(String desc, String className, String methodName, Object objArg);
|
||||
|
||||
public void arg(String className, String methodName, Object[] objArrayArg);
|
||||
public void val(String desc, String className, String methodName, Object[] objArrayArg);
|
||||
|
||||
public void branch(String className, String methodName, int lineNo);
|
||||
|
||||
|
|
|
|||
|
|
@ -7,109 +7,109 @@ public class IInstrumentationHandlerAdapter implements IInstrumentationHandler
|
|||
{
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, byte byteArg)
|
||||
public void val(String desc, String className, String methodName, byte byteArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, byte[] byteArrayArg)
|
||||
public void val(String desc, String className, String methodName, byte[] byteArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, short shortArg)
|
||||
public void val(String desc, String className, String methodName, short shortArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, short[] shortArrayArg)
|
||||
public void val(String desc, String className, String methodName, short[] shortArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, int intArg)
|
||||
public void val(String desc, String className, String methodName, int intArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, int[] intArrayArg)
|
||||
public void val(String desc, String className, String methodName, int[] intArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, long longArg)
|
||||
public void val(String desc, String className, String methodName, long longArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, long[] longArrayArg)
|
||||
public void val(String desc, String className, String methodName, long[] longArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, float floatArg)
|
||||
public void val(String desc, String className, String methodName, float floatArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, float[] floatArrayArg)
|
||||
public void val(String desc, String className, String methodName, float[] floatArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, double doubleArg)
|
||||
public void val(String desc, String className, String methodName, double doubleArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, double[] doubleArrayArg)
|
||||
public void val(String desc, String className, String methodName, double[] doubleArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, boolean boolArg)
|
||||
public void val(String desc, String className, String methodName, boolean boolArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, boolean[] boolArrayArg)
|
||||
public void val(String desc, String className, String methodName, boolean[] boolArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, char charArg)
|
||||
public void val(String desc, String className, String methodName, char charArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, char[] charArrayArg)
|
||||
public void val(String desc, String className, String methodName, char[] charArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, Object objArg)
|
||||
public void val(String desc, String className, String methodName, Object objArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, Object[] objArrayArg)
|
||||
public void val(String desc, String className, String methodName, Object[] objArrayArg)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,178 +45,183 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, byte byteArg)
|
||||
public void val(String desc, String className, String methodName, byte byteArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ byteArg);
|
||||
}
|
||||
}
|
||||
|
||||
public void arg(String className, String methodName, byte[] byteArrayArg)
|
||||
public void val(String desc, String className, String methodName, byte[] byteArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(byteArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, short shortArg)
|
||||
public void val(String desc, String className, String methodName, short shortArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ shortArg);
|
||||
}
|
||||
}
|
||||
|
||||
public void arg(String className, String methodName, short[] shortArrayArg)
|
||||
public void val(String desc, String className, String methodName, short[] shortArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(shortArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, int intArg)
|
||||
public void val(String desc, String className, String methodName, int intArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper
|
||||
.writeOutput(className + ":" + methodName + ": Arg: " + intArg);
|
||||
.writeOutput(className + ":" + methodName + ": " + desc + ":" + intArg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, int[] intArrayArg)
|
||||
public void val(String desc, String className, String methodName, int[] intArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(intArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, long longArg)
|
||||
public void val(String desc, String className, String methodName, long longArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ longArg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, long[] longArrayArg)
|
||||
public void val(String desc, String className, String methodName, long[] longArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(longArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, float floatArg)
|
||||
public void val(String desc, String className, String methodName, float floatArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ floatArg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, float[] floatArrayArg)
|
||||
public void val(String desc, String className, String methodName, float[] floatArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(floatArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, double doubleArg)
|
||||
public void val(String desc, String className, String methodName, double doubleArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ doubleArg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, double[] doubleArrayArg)
|
||||
public void val(String desc, String className, String methodName, double[] doubleArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(doubleArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, boolean boolArg)
|
||||
public void val(String desc, String className, String methodName, boolean boolArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ boolArg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, boolean[] boolArrayArg)
|
||||
public void val(String desc, String className, String methodName, boolean[] boolArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(boolArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, char charArg)
|
||||
public void val(String desc, String className, String methodName, char charArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ charArg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, char[] charArrayArg)
|
||||
public void val(String desc, String className, String methodName, char[] charArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.toString(charArrayArg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, Object objArg)
|
||||
public void val(String desc, String className, String methodName, Object objArg)
|
||||
{
|
||||
// Array return values pass through this arm so we must do something
|
||||
// a bit special - use Arrays.deepToString and discard the surrounding
|
||||
// [] that we add.
|
||||
if (argTrace)
|
||||
{
|
||||
String objStr = Arrays.deepToString(new Object[] {objArg});
|
||||
objStr = objStr.substring(1, objStr.length() - 1);
|
||||
AgentHelper
|
||||
.writeOutput(className + ":" + methodName + ": Arg: " + objArg);
|
||||
.writeOutput(className + ":" + methodName + ": " + desc + ":" + objStr);
|
||||
}
|
||||
}
|
||||
|
||||
public void arg(String className, String methodName, Object[] objArrayArg)
|
||||
public void val(String desc, String className, String methodName, Object[] objArrayArg)
|
||||
{
|
||||
if (argTrace)
|
||||
{
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": Arg: "
|
||||
AgentHelper.writeOutput(className + ":" + methodName + ": " + desc + ":"
|
||||
+ Arrays.deepToString(objArrayArg));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -181,11 +181,11 @@ public class AgentTest extends TestCase
|
|||
EasyMock.expectLastCall().andAnswer(exitTraceWriter).anyTimes();
|
||||
|
||||
testHandler
|
||||
.arg(isA(String.class), isA(String.class), EasyMock.anyBoolean());
|
||||
.val(isA(String.class), isA(String.class), isA(String.class), EasyMock.anyBoolean());
|
||||
EasyMock.expectLastCall().anyTimes();
|
||||
testHandler.arg(isA(String.class), isA(String.class), EasyMock.anyObject());
|
||||
testHandler.val(isA(String.class), isA(String.class), isA(String.class), EasyMock.anyObject());
|
||||
EasyMock.expectLastCall().anyTimes();
|
||||
testHandler.arg(isA(String.class), isA(String.class), EasyMock.anyInt());
|
||||
testHandler.val(isA(String.class), isA(String.class), isA(String.class), EasyMock.anyInt());
|
||||
EasyMock.expectLastCall().anyTimes();
|
||||
|
||||
EasyMock.replay(testHandler);
|
||||
|
|
|
|||
|
|
@ -22,117 +22,117 @@ public class ArgCapture implements IInstrumentationHandler
|
|||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, byte byteArg)
|
||||
public void val(String desc, String className, String methodName, byte byteArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + byteArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + byteArg + "]");
|
||||
}
|
||||
|
||||
public void arg(String className, String methodName, byte[] byteArrayArg)
|
||||
public void val(String desc, String className, String methodName, byte[] byteArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(byteArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, short shortArg)
|
||||
public void val(String desc, String className, String methodName, short shortArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + shortArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + shortArg + "]");
|
||||
}
|
||||
|
||||
public void arg(String className, String methodName, short[] shortArrayArg)
|
||||
public void val(String desc, String className, String methodName, short[] shortArrayArg)
|
||||
{
|
||||
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(shortArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, int intArg)
|
||||
public void val(String desc, String className, String methodName, int intArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + intArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + intArg + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, int[] intArrayArg)
|
||||
public void val(String desc, String className, String methodName, int[] intArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(intArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, long longArg)
|
||||
public void val(String desc, String className, String methodName, long longArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + longArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + longArg + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, long[] longArrayArg)
|
||||
public void val(String desc, String className, String methodName, long[] longArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(longArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, float floatArg)
|
||||
public void val(String desc, String className, String methodName, float floatArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + floatArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + floatArg + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, float[] floatArrayArg)
|
||||
public void val(String desc, String className, String methodName, float[] floatArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(floatArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, double doubleArg)
|
||||
public void val(String desc, String className, String methodName, double doubleArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + doubleArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + doubleArg + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, double[] doubleArrayArg)
|
||||
public void val(String desc, String className, String methodName, double[] doubleArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(doubleArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, boolean boolArg)
|
||||
public void val(String desc, String className, String methodName, boolean boolArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + boolArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + boolArg + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, boolean[] boolArrayArg)
|
||||
public void val(String desc, String className, String methodName, boolean[] boolArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(boolArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, char charArg)
|
||||
public void val(String desc, String className, String methodName, char charArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + charArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + charArg + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, char[] charArrayArg)
|
||||
public void val(String desc, String className, String methodName, char[] charArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.toString(charArrayArg) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void arg(String className, String methodName, Object objArg)
|
||||
public void val(String desc, String className, String methodName, Object objArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", " + objArg + "]");
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", " + objArg + "]");
|
||||
}
|
||||
|
||||
public void arg(String className, String methodName, Object[] objArrayArg)
|
||||
public void val(String desc, String className, String methodName, Object[] objArrayArg)
|
||||
{
|
||||
addArg("Arg:##:[" + className + ", " + methodName + ", "
|
||||
addArg(desc + ":##:[" + className + ", " + methodName + ", "
|
||||
+ Arrays.deepToString(objArrayArg) + "]");
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue