Mercurial > paraspace
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 |