diff options
Diffstat (limited to 'tools/proftool.c')
-rw-r--r-- | tools/proftool.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/proftool.c b/tools/proftool.c index 0d74e1169a..b5b8a9f793 100644 --- a/tools/proftool.c +++ b/tools/proftool.c @@ -179,6 +179,7 @@ struct trace_call *call_list; /* list of all calls in the input trace file */ int call_count; /* number of calls */ int verbose; /* Verbosity level 0=none, 1=warn, 2=notice, 3=info, 4=debug */ ulong text_offset; /* text address of first function */ +ulong text_base; /* CONFIG_TEXT_BASE from trace file */ /* debugging helpers */ static void outf(int level, const char *fmt, ...) @@ -289,7 +290,8 @@ static int read_system_map(FILE *fin) if (func_count > 1) func[-1].code_size = func->offset - func[-1].offset; } - notice("%d functions found in map file\n", func_count); + notice("%d functions found in map file, start addr %lx\n", func_count, + start); text_offset = start; return 0; @@ -415,6 +417,7 @@ static int read_trace(FILE *fin) break; /* EOF */ else if (err) return 1; + text_base = hdr.text_base; switch (hdr.type) { case TRACE_CHUNK_FUNCS: @@ -1342,6 +1345,8 @@ static int write_flyrecord(struct twriter *tw, int *missing_countp, tw->ptr += tputq(fout, len); tw->ptr += tputs(fout, str); + debug("trace text base %lx, map file %lx\n", text_base, text_offset); + ret = write_pages(tw, missing_countp, skip_countp); if (ret < 0) { fprintf(stderr, "Cannot output pages\n"); |