void test_dumpBytecodes(void) { char buffer[500] = {0}; int bytecode[20] = {0}; bytecode[0] = add(REG_0, REG_0, REG_1); bytecode[1] = sub(REG_0, REG_0, REG_1); bytecode[2] = mul(REG_1, REG_0, REG_0, REG_1); bytecode[3] = div(REG_0, REG_1, REG_0, REG_1); bytecode[4] = and(REG_0, REG_0, REG_1); bytecode[5] = or(REG_0, REG_0, REG_1); bytecode[6] = xor(REG_0, REG_0, REG_1); bytecode[7] = 0xFFFFFFFF; printf("test_dumpBytecodes\n"); dumpBytecodes(bytecode); }
/* * Dump a "code" struct. */ void dumpCode(DexFile* pDexFile, const DexMethod* pDexMethod) { const DexCode* pCode = dexGetCode(pDexFile, pDexMethod); printf(" registers : %d\n", pCode->registersSize); printf(" ins : %d\n", pCode->insSize); printf(" outs : %d\n", pCode->outsSize); printf(" insns size : %d 16-bit code units\n", pCode->insnsSize); if (gOptions.disassemble) dumpBytecodes(pDexFile, pDexMethod); dumpCatches(pDexFile, pCode); /* both of these are encoded in debug info */ dumpPositions(pDexFile, pCode, pDexMethod); dumpLocals(pDexFile, pCode, pDexMethod); }