read_addr.cpp revision 55a2c71f27d3e0b8344597c7f281e687cb7aeb1b
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.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; 1855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project uint32_t addr; 1955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project int flags; 2055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project 2155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project if (trace->ReadAddr(&time, &addr, &flags)) 2255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project break; 2355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project char *op = "ld"; 2455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project if (flags == 1) 2555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project op = "st"; 2655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project printf("%lld 0x%08x %s\n", time, addr, op); 2755a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project } 2855a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project return 0; 2955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project} 30