155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#include <stdio.h> 255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#include <stdlib.h> 355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#include <inttypes.h> 455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#include "trace_reader_base.h" 555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project 655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectint main(int argc, char **argv) { 755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project if (argc != 2) { 855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project fprintf(stderr, "Usage: %s trace_file\n", argv[0]); 955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project exit(1); 1055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project } 1155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project 1255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project char *trace_filename = argv[1]; 1355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project TraceReaderBase *trace = new TraceReaderBase; 1455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project trace->Open(trace_filename); 1555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project 1655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project while (1) { 1755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project uint64_t time, recnum, bb_num, bb_start_time; 1855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project uint32_t pc, target_pc; 1955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project int num_insns; 2055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project 2155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project if (trace->ReadExc(&time, &pc, &recnum, &target_pc, &bb_num, 2255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project &bb_start_time, &num_insns)) 2355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project break; 2455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project printf("time: %lld rec: %llu pc: %08x target: %08x bb: %llu bb_start: %llu insns: %d\n", 2555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project time, recnum, pc, target_pc, bb_num, bb_start_time, num_insns); 2655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project } 2755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project return 0; 2855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project} 29