Trying to see if I can run pme on client init. Failing between unequal number of java string invokes

This commit is contained in:
Adam
2016-01-17 20:29:23 -05:00
parent c632beac50
commit d328551750
3 changed files with 10 additions and 2 deletions

View File

@@ -102,6 +102,12 @@ public class InvokeSpecial extends Instruction implements InvokeInstruction
frame.addInstructionContext(ins); frame.addInstructionContext(ins);
} }
@Override
public String toString()
{
return "invokespecial " + method + " in " + this.getInstructions().getCode().getAttributes().getMethod();
}
@Override @Override
public String getDesc(Frame frame) public String getDesc(Frame frame)

View File

@@ -85,11 +85,13 @@ public class ParallellMappingExecutor
if (p1.getInstruction() instanceof InvokeStatic && !(p2.getInstruction() instanceof InvokeStatic)) if (p1.getInstruction() instanceof InvokeStatic && !(p2.getInstruction() instanceof InvokeStatic))
{ {
f1 = stepInto(f1); f1 = stepInto(f1);
f1 = popStack(f1);
p1 = f1.getInstructions().get(f1.getInstructions().size() - 1); p1 = f1.getInstructions().get(f1.getInstructions().size() - 1);
} }
else if (p2.getInstruction() instanceof InvokeStatic && !(p1.getInstruction() instanceof InvokeStatic)) else if (p2.getInstruction() instanceof InvokeStatic && !(p1.getInstruction() instanceof InvokeStatic))
{ {
f2 = stepInto(f2); f2 = stepInto(f2);
f2 = popStack(f2);
p2 = f2.getInstructions().get(f2.getInstructions().size() - 1); p2 = f2.getInstructions().get(f2.getInstructions().size() - 1);
} }

View File

@@ -68,8 +68,8 @@ public class MapStaticTest
ClassGroup group1 = JarUtil.loadJar(new File("d:/rs/07/adamin1.jar")); ClassGroup group1 = JarUtil.loadJar(new File("d:/rs/07/adamin1.jar"));
ClassGroup group2 = JarUtil.loadJar(new File("d:/rs/07/adamin2.jar")); ClassGroup group2 = JarUtil.loadJar(new File("d:/rs/07/adamin2.jar"));
Method m1 = group1.findClass("class107").findMethod("method2427"); Method m1 = group1.findClass("client").findMethod("init");
Method m2 = group2.findClass("class107").findMethod("method2344"); Method m2 = group2.findClass("client").findMethod("init");
ParallelExecutorMapping mappings = MappingExecutorUtil.map(m1, m2); ParallelExecutorMapping mappings = MappingExecutorUtil.map(m1, m2);
} }