comparison paraspace/dump_code.py @ 103:8a53e6f7f517

Provide convinience API to convert str block into opcode vectors
author Thinker K.F. Li <thinker@codemud.net>
date Wed, 27 Jul 2011 12:09:19 +0800
parents 63de54e61e5b
children
comparison
equal deleted inserted replaced
102:7fcd555d802b 103:8a53e6f7f517
1 from paraspace.dexfile import DEXFile 1 from paraspace.dexfile import DEXFile
2 from paraspace.dalvik_opcodes import split_blk_2_insns, decode_inst 2 from paraspace.dalvik_opcodes import decode_insn_blk, format_inst
3 from paraspace.dalvik_opcodes import format_inst
4 3
5 4
6 def dump_code_item(item, dex): 5 def dump_code_item(item, dex):
7 print 'registersSize: %d' % (item.registersSize) 6 print 'registersSize: %d' % (item.registersSize)
8 print 'insSize: %d' % (item.insSize) 7 print 'insSize: %d' % (item.insSize)
9 print 'outsSize: %d' % (item.outsSize) 8 print 'outsSize: %d' % (item.outsSize)
10 print 'triesSize: %d' % (item.triesSize) 9 print 'triesSize: %d' % (item.triesSize)
11 print 'debugInfoOff: 0x%x' % (item.debugInfoOff) 10 print 'debugInfoOff: 0x%x' % (item.debugInfoOff)
12 print 'insnsSize: %d' % (item.insnsSize) 11 print 'insnsSize: %d' % (item.insnsSize)
13 block = item.insns.data 12 block = item.insns.data
14 op_vectors = [decode_inst(insn) for insn in split_blk_2_insns(block)] 13 op_vectors = decode_insn_blk(block)
15 for op_vector in op_vectors: 14 for op_vector in op_vectors:
16 op_str = format_inst(op_vector) 15 op_str = format_inst(op_vector)
17 print '\t%s' % (op_str) 16 print '\t%s' % (op_str)
18 pass 17 pass
19 pass 18 pass