/art/tools/dexfuzz/src/dexfuzz/program/ |
D | MutatableCode.java | 66 private List<MInsn> mutatableInsns; 96 this.mutatableInsns = new LinkedList<MInsn>(); in MutatableCode() 103 public void updateInstructionLocationsAfter(MInsn mInsn, int offset) { in updateInstructionLocationsAfter() 105 for (MInsn mInsnChecking : mutatableInsns) { in updateInstructionLocationsAfter() 120 for (MInsn mInsn : mutatableInsns) { in recalculateLocations() 126 public List<MInsn> getInstructions() { in getInstructions() 134 public int getInstructionIndex(MInsn mInsn) { in getInstructionIndex() 138 public MInsn getInstructionAt(int idx) { in getInstructionAt() 142 public void addInstructionToEnd(MInsn mInsn) { in addInstructionToEnd() 146 public void insertInstructionAfter(MInsn toBeInserted, int insertionIdx) { in insertInstructionAfter() [all …]
|
D | MTryBlock.java | 25 public MInsn startInsn; 26 public MInsn endInsn; 27 public List<MInsn> handlers; 28 public MInsn catchAllHandler;
|
D | MInsn.java | 25 public class MInsn { class 46 public MInsn clone() { in clone() 47 MInsn newInsn = new MInsn(); in clone()
|
D | CodeTranslator.java | 73 Map<Integer,MInsn> insnLocationMap = new HashMap<Integer,MInsn>(); in codeItemToMutatableCode() 80 MInsn mInsn = null; in codeItemToMutatableCode() 89 mInsn = new MInsn(); in codeItemToMutatableCode() 108 for (MInsn mInsn : mutatableCode.getInstructions()) { in codeItemToMutatableCode() 152 for (MInsn mInsn : mutatableCode.getInstructions()) { in mutatableCodeToCodeItem() 173 for (MInsn mInsn : mutatableCode.getInstructions()) { in mutatableCodeToCodeItem() 177 MInsn target = ((MInsnWithData) mInsn).dataTarget; in mutatableCodeToCodeItem() 182 MInsn target = ((MBranchInsn) mInsn).target; in mutatableCodeToCodeItem() 250 Map<Integer,MInsn> insnLocationMap) { in readTryBlocks() 300 mTryBlock.handlers = new LinkedList<MInsn>(); in readTryBlocks() [all …]
|
D | MSwitchInsn.java | 29 public List<MInsn> targets = new LinkedList<MInsn>(); 43 for (MInsn target : targets) { in clone()
|
D | MBranchInsn.java | 22 public class MBranchInsn extends MInsn { 26 public MInsn target;
|
D | MInsnWithData.java | 22 public class MInsnWithData extends MInsn { 26 public MInsn dataTarget;
|
/art/tools/dexfuzz/src/dexfuzz/program/mutators/ |
D | NewArrayLengthChanger.java | 21 import dexfuzz.program.MInsn; 69 private List<MInsn> newArrayLengthInsns = null; 76 newArrayLengthInsns = new ArrayList<MInsn>(); in generateCachedArrayLengthInsns() 78 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedArrayLengthInsns() 87 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 115 MInsn newArrayInsn = newArrayLengthInsns.get(mutation.newArrayToChangeIdx); in applyMutation() 129 MInsn newInsn = new MInsn(); in applyMutation() 143 private boolean isNewArray(MInsn mInsn) { in isNewArray() 151 for (MInsn mInsn : mutatableCode.getInstructions()) { in scanNewArray()
|
D | IfBranchChanger.java | 21 import dexfuzz.program.MInsn; 76 private List<MInsn> ifBranchInsns = null; 83 ifBranchInsns = new ArrayList<MInsn>(); in generateCachedifBranchInsns() 85 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedifBranchInsns() 94 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 123 MInsn ifBranchInsn = ifBranchInsns.get(mutation.ifBranchInsnIdx); in applyMutation() 143 protected abstract Opcode getModifiedOpcode(MInsn mInsn); in getModifiedOpcode() 151 private boolean isIfBranchOperation(MInsn mInsn) { in isIfBranchOperation()
|
D | CmpBiasChanger.java | 21 import dexfuzz.program.MInsn; 69 private List<MInsn> cmpBiasInsns = null; 76 cmpBiasInsns = new ArrayList<MInsn>(); in generateCachedCmpBiasInsns() 78 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedCmpBiasInsns() 87 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 117 MInsn cmpBiasInsn = cmpBiasInsns.get(mutation.cmpBiasInsnIdx); in applyMutation() 133 private Opcode getLegalDifferentOpcode(MInsn mInsn) { in getLegalDifferentOpcode() 147 private boolean isCmpBiasOperation(MInsn mInsn) { in isCmpBiasOperation()
|
D | ConversionRepeater.java | 21 import dexfuzz.program.MInsn; 69 private List<MInsn> conversionInsns = null; 76 conversionInsns = new ArrayList<MInsn>(); in generateCachedConversionInsns() 78 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedConversionInsns() 87 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 115 MInsn originalInsn = conversionInsns.get(mutation.conversionInsnIdx); in applyMutation() 123 MInsn newInsnThere = originalInsn.clone(); in applyMutation() 176 MInsn newInsnBack = originalInsn.clone(); in applyMutation() 193 private boolean isConversionInstruction(MInsn mInsn) { in isConversionInstruction()
|
D | NewInstanceChanger.java | 21 import dexfuzz.program.MInsn; 80 private List<MInsn> newInstanceCachedInsns = null; 87 newInstanceCachedInsns = new ArrayList<MInsn>(); in generateCachedNewInstanceInsns() 89 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedNewInstanceInsns() 104 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 118 MInsn newInstanceInsn = newInstanceCachedInsns.get(newInstanceIdxInCache); in generateMutation() 145 MInsn newInstanceInsn = newInstanceCachedInsns.get(mutation.newInstanceToChangeIdx); in applyMutation() 179 MInsn insn = mutatableCode.getInstructionAt(foundInsnIdx + 1); in changeInvokeDirect() 201 protected boolean isInvokeInst(MInsn mInsn) { in isInvokeInst() 208 protected int foundInsnIdx(MutatableCode mutatableCode, MInsn newInstanceInsn) { in foundInsnIdx() [all …]
|
D | NonsenseStringPrinter.java | 21 import dexfuzz.program.MInsn; 78 MInsn insertionPoint = in generateMutation() 112 MInsn insertionPoint = mutatableCode.getInstructionAt(mutation.insertionIdx); in applyMutation() 121 MInsn constStringInsn = new MInsn(); in applyMutation() 127 MInsn streamLoadInsn = new MInsn(); in applyMutation() 133 MInsn invokeInsn = new MInsn(); in applyMutation()
|
D | ConstantValueChanger.java | 21 import dexfuzz.program.MInsn; 73 private List<MInsn> constInsns = null; 80 constInsns = new ArrayList<MInsn>(); in generateCachedConstInsns() 81 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedConstInsns() 90 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 106 MInsn constInsn = constInsns.get(constInsnIdx); in generateMutation() 134 MInsn constInsn = constInsns.get(mutation.constInsnIdx); in applyMutation()
|
D | InvokeChanger.java | 21 import dexfuzz.program.MInsn; 87 private List<MInsn> invokeCallInsns = null; 94 invokeCallInsns = new ArrayList<MInsn>(); in generateCachedinvokeCallInsns() 96 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedinvokeCallInsns() 105 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 135 MInsn invokeInsn = invokeCallInsns.get(mutation.invokeCallInsnIdx); in applyMutation() 151 private Opcode getDifferentInvokeCallOpcode(MInsn mInsn) { in getDifferentInvokeCallOpcode() 174 private boolean isInvokeCallInst(MInsn mInsn) { in isInvokeCallInst()
|
D | InstructionDeleter.java | 21 import dexfuzz.program.MInsn; 92 MInsn toBeDeleted = in applyMutation() 106 MInsn dataInsn = in applyMutation() 118 MInsn withDataInsn = null; in applyMutation() 119 for (MInsn mInsn : mutatableCode.getInstructions()) { in applyMutation()
|
D | ValuePrinter.java | 21 import dexfuzz.program.MInsn; 67 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 85 MInsn insnOutputToPrint = in generateMutation() 111 MInsn insnOutputToPrint = in applyMutation() 153 MInsn valueCopyInsn = new MInsn(); in applyMutation() 165 MInsn streamLoadInsn = new MInsn(); in applyMutation() 171 MInsn invokeInsn = new MInsn(); in applyMutation() 215 private OutputType getInstructionOutputType(MInsn mInsn) { in getInstructionOutputType()
|
D | VRegChanger.java | 21 import dexfuzz.program.MInsn; 76 private List<MInsn> vregInsns = null; 83 vregInsns = new ArrayList<MInsn>(); in generateCachedVRegInsns() 84 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedVRegInsns() 98 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 113 MInsn vregInsn = vregInsns.get(vregInsnIdx); in generateMutation() 160 MInsn vregInsn = vregInsns.get(mutation.vregInsnIdx); in applyMutation()
|
D | PoolIndexChanger.java | 21 import dexfuzz.program.MInsn; 74 private List<MInsn> poolIndexInsns = null; 81 poolIndexInsns = new ArrayList<MInsn>(); in generateCachedPoolIndexInsns() 82 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedPoolIndexInsns() 94 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 140 MInsn poolIndexInsn = poolIndexInsns.get(poolIndexInsnIdx); in generateMutation() 181 MInsn poolIndexInsn = poolIndexInsns.get(mutation.poolIndexInsnIdx); in applyMutation()
|
D | InstructionDuplicator.java | 21 import dexfuzz.program.MInsn; 72 MInsn oldInsn = mutatableCode.getInstructionAt(insnIdx); in generateMutation() 94 MInsn oldInsn = mutatableCode.getInstructionAt(mutation.insnToDuplicateIdx); in applyMutation() 96 MInsn newInsn = oldInsn.clone(); in applyMutation()
|
D | BranchShifter.java | 22 import dexfuzz.program.MInsn; 82 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedBranchInsns() 96 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 115 MInsn oldTargetInsn = branchInsn.target; in generateMutation() 158 MInsn newTargetInsn = mutatableCode.getInstructionAt(mutation.newTargetIdx); in applyMutation()
|
D | FieldFlagChanger.java | 21 import dexfuzz.program.MInsn; 76 private List<MInsn> fieldInsns = null; 83 fieldInsns = new ArrayList<MInsn>(); in generateCachedFieldInsns() 85 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedFieldInsns() 94 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 155 private boolean isFileDefinedFieldInstruction(MInsn mInsn, MutatableCode mutatableCode) { in isFileDefinedFieldInstruction()
|
D | SwitchBranchShifter.java | 21 import dexfuzz.program.MInsn; 85 for (MInsn mInsn : mutatableCode.getInstructions()) { in generateCachedSwitchInsns() 94 for (MInsn mInsn : mutatableCode.getInstructions()) { in canMutate() 116 MInsn oldTargetInsn = switchInsn.targets.get(switchTargetIdx); in generateMutation() 160 MInsn newTargetInsn = in applyMutation()
|
D | InstructionSwapper.java | 21 import dexfuzz.program.MInsn; 90 MInsn toBeSwapped = mutatableCode.getInstructionAt(swapInsnIdx); in generateMutation() 148 MInsn toBeSwapped = mutatableCode.getInstructionAt(mutation.swapInsnIdx); in applyMutation() 149 MInsn swappedWith = mutatableCode.getInstructionAt(mutation.swapWithInsnIdx); in applyMutation()
|
D | NewMethodCaller.java | 21 import dexfuzz.program.MInsn; 112 MInsn insertionPoint = in generateMutation() 143 MInsn newInsn = new MInsn(); in applyMutation() 176 MInsn insertionPoint = in applyMutation()
|