# HG changeset patch # User Thinker K.F. Li # Date 1311739759 -28800 # Node ID 8a53e6f7f51744bbe2f2f08102ba3360c3de8314 # Parent 7fcd555d802b3587ef0dcce2198576c4c1a9f1c6 Provide convinience API to convert str block into opcode vectors diff -r 7fcd555d802b -r 8a53e6f7f517 paraspace/dalvik_opcodes.py --- a/paraspace/dalvik_opcodes.py Wed Jul 27 09:07:36 2011 +0800 +++ b/paraspace/dalvik_opcodes.py Wed Jul 27 12:09:19 2011 +0800 @@ -1256,6 +1256,20 @@ pass +## \brief Decode a block of instructions. +# +# Split and docode a block of instructions into a list of opcode +# vectors. +# +# \param insn_blk is a string that is block of instructions. +# \return a list of (opcode, args) vectors. +# +def decode_insn_blk(insn_blk): + insns = split_blk_2_insns(insn_blk) + decoded_insns = [decode_inst(insn) for insn in insns] + return decoded_insns + + del name del _names del _opcode diff -r 7fcd555d802b -r 8a53e6f7f517 paraspace/dump_code.py --- a/paraspace/dump_code.py Wed Jul 27 09:07:36 2011 +0800 +++ b/paraspace/dump_code.py Wed Jul 27 12:09:19 2011 +0800 @@ -1,6 +1,5 @@ from paraspace.dexfile import DEXFile -from paraspace.dalvik_opcodes import split_blk_2_insns, decode_inst -from paraspace.dalvik_opcodes import format_inst +from paraspace.dalvik_opcodes import decode_insn_blk, format_inst def dump_code_item(item, dex): @@ -11,7 +10,7 @@ print 'debugInfoOff: 0x%x' % (item.debugInfoOff) print 'insnsSize: %d' % (item.insnsSize) block = item.insns.data - op_vectors = [decode_inst(insn) for insn in split_blk_2_insns(block)] + op_vectors = decode_insn_blk(block) for op_vector in op_vectors: op_str = format_inst(op_vector) print '\t%s' % (op_str)