perf script: Move map__fprintf_srccode() to near its only user

No need to have it elsewhere.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-8cw846pudpxo0xdkvi9qnvrh@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 2ea352d5
...@@ -932,6 +932,48 @@ static int grab_bb(u8 *buffer, u64 start, u64 end, ...@@ -932,6 +932,48 @@ static int grab_bb(u8 *buffer, u64 start, u64 end,
return len; return len;
} }
static int map__fprintf_srccode(struct map *map, u64 addr, FILE *fp, struct srccode_state *state)
{
char *srcfile;
int ret = 0;
unsigned line;
int len;
char *srccode;
if (!map || !map->dso)
return 0;
srcfile = get_srcline_split(map->dso,
map__rip_2objdump(map, addr),
&line);
if (!srcfile)
return 0;
/* Avoid redundant printing */
if (state &&
state->srcfile &&
!strcmp(state->srcfile, srcfile) &&
state->line == line) {
free(srcfile);
return 0;
}
srccode = find_sourceline(srcfile, line, &len);
if (!srccode)
goto out_free_line;
ret = fprintf(fp, "|%-8d %.*s", line, len, srccode);
if (state) {
state->srcfile = srcfile;
state->line = line;
}
return ret;
out_free_line:
free(srcfile);
return ret;
}
static int print_srccode(struct thread *thread, u8 cpumode, uint64_t addr) static int print_srccode(struct thread *thread, u8 cpumode, uint64_t addr)
{ {
struct addr_location al; struct addr_location al;
......
...@@ -433,51 +433,6 @@ int map__fprintf_srcline(struct map *map, u64 addr, const char *prefix, ...@@ -433,51 +433,6 @@ int map__fprintf_srcline(struct map *map, u64 addr, const char *prefix,
return ret; return ret;
} }
int map__fprintf_srccode(struct map *map, u64 addr,
FILE *fp,
struct srccode_state *state)
{
char *srcfile;
int ret = 0;
unsigned line;
int len;
char *srccode;
if (!map || !map->dso)
return 0;
srcfile = get_srcline_split(map->dso,
map__rip_2objdump(map, addr),
&line);
if (!srcfile)
return 0;
/* Avoid redundant printing */
if (state &&
state->srcfile &&
!strcmp(state->srcfile, srcfile) &&
state->line == line) {
free(srcfile);
return 0;
}
srccode = find_sourceline(srcfile, line, &len);
if (!srccode)
goto out_free_line;
ret = fprintf(fp, "|%-8d %.*s", line, len, srccode);
if (state) {
state->srcfile = srcfile;
state->line = line;
}
return ret;
out_free_line:
free(srcfile);
return ret;
}
void srccode_state_free(struct srccode_state *state) void srccode_state_free(struct srccode_state *state)
{ {
zfree(&state->srcfile); zfree(&state->srcfile);
......
...@@ -138,11 +138,6 @@ char *map__srcline(struct map *map, u64 addr, struct symbol *sym); ...@@ -138,11 +138,6 @@ char *map__srcline(struct map *map, u64 addr, struct symbol *sym);
int map__fprintf_srcline(struct map *map, u64 addr, const char *prefix, int map__fprintf_srcline(struct map *map, u64 addr, const char *prefix,
FILE *fp); FILE *fp);
struct srccode_state;
int map__fprintf_srccode(struct map *map, u64 addr,
FILE *fp, struct srccode_state *state);
int map__load(struct map *map); int map__load(struct map *map);
struct symbol *map__find_symbol(struct map *map, u64 addr); struct symbol *map__find_symbol(struct map *map, u64 addr);
struct symbol *map__find_symbol_by_name(struct map *map, const char *name); struct symbol *map__find_symbol_by_name(struct map *map, const char *name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment