/* * 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); }
int main(int argc, char **argv) { argc = AS_configure(argc, argv); merylArgs *args = new merylArgs(argc, argv); gkpStoreFile::registerFile(); gkpStoreChain::registerFile(); switch (args->personality) { case 'P': estimate(args); break; case 'B': build(args); break; case 'd': dumpDistanceBetweenMers(args); break; case 't': dumpThreshold(args); break; case 'p': dumpPositions(args); break; case 'c': countUnique(args); break; case 'h': plotHistogram(args); break; case PERSONALITY_MIN: case PERSONALITY_MINEXIST: case PERSONALITY_MAX: case PERSONALITY_MAXEXIST: case PERSONALITY_ADD: case PERSONALITY_AND: case PERSONALITY_NAND: case PERSONALITY_OR: case PERSONALITY_XOR: multipleOperations(args); break; case PERSONALITY_SUB: case PERSONALITY_ABS: case PERSONALITY_DIVIDE: binaryOperations(args); break; case PERSONALITY_LEQ: case PERSONALITY_GEQ: case PERSONALITY_EQ: unaryOperations(args); break; default: args->usage(); fprintf(stderr, "%s: unknown personality. Specify -P, -B, -S or -M!\n", args->execName); exit(1); break; } delete args; return(0); }
vector<PositionInfo> ComponentRepeat::first() const { DEBUG_PRINTF("firsts = %s\n", dumpPositions(firsts_cache.begin(), firsts_cache.end()).c_str()); return firsts_cache; }