Messages in this thread | | | From | Namhyung Kim <> | Date | Thu, 1 Jun 2023 10:19:13 -0700 | Subject | Re: [PATCH] Subject: perf jit: Fix incorrect file name in DWARF line table |
| |
On Wed, May 31, 2023 at 7:35 AM elisabeth <paniii94@gmail.com> wrote: > > Fix an issue where an incorrect file name was added in the DWARF line table > due to not checking the filename against the repeated name marker (/xff/0). > This can be seen with `objdump --dwarf=line` on the ELF file after perf inject. > > Signed-off-by: elisabeth <paniii94@gmail.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Arnaldo Carvalho de Melo <acme@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Namhyung Kim <namhyung@kernel.org> > --- > tools/perf/util/genelf_debug.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/genelf_debug.c b/tools/perf/util/genelf_debug.c > index aa5dcc56b2ac..2928b59bb9a5 100644 > --- a/tools/perf/util/genelf_debug.c > +++ b/tools/perf/util/genelf_debug.c > @@ -349,6 +349,7 @@ static void emit_lineno_info(struct buffer_ext *be, > */ > > /* start state of the state machine we take care of */ > + char const repeated_name_marker[] = {'\xff', '\0'};
Can you please mention that it's from the jitdump format either by renaming or adding a comment?
> unsigned long last_vma = 0; > char const *cur_filename = NULL; > unsigned long cur_file_idx = 0; > @@ -363,7 +364,8 @@ static void emit_lineno_info(struct buffer_ext *be, > /* > * check if filename changed, if so add it > */ > - if (!cur_filename || strcmp(cur_filename, ent->name)) { > + if ((!cur_filename || strcmp(cur_filename, ent->name)) && > + memcmp(repeated_name_marker, ent->name, sizeof(repeated_name_marker)) != 0) {
I think you can just use strcmp().
Thanks, Namhyung
> emit_lne_define_filename(be, ent->name); > cur_filename = ent->name; > emit_set_file(be, ++cur_file_idx); > -- > 2.34.1 >
| |