Re: [PATCH v2] Subject: perf jit: Fix incorrect file name in DWARF line table

From: Namhyung Kim
Date: Wed Jun 21 2023 - 13:22:18 EST


On Fri, Jun 2, 2023 at 5:38 AM Elisabeth <paniii94@xxxxxxxxx> wrote:
>
> From: elisabeth <paniii94@xxxxxxxxx>
>
> Fixes an issue where an incorrect filename was added in the DWARF line table of
> an ELF object file when calling 'perf inject --jit' due to not checking the
> filename of a debug entry against the repeated name marker (/xff/0).
> The marker is mentioned in the tools/perf/util/jitdump.h header, which describes
> the jitdump binary format, and indicitates that the filename in a debug entry
> is the same as the previous enrty.
> In the function emit_lineno_info(), in the file tools/perf/util/genelf-debug.c,
> the debug entry filename gets compared to the previous entry filename. If they
> are not the same, a new filename is added to the DWARF line table. However,
> since there is no check against '\xff\0', in some cases '\xff\0' is inserted
> as the filename into the DWARF line table.
> This can be seen with `objdump --dwarf=line` on the ELF file after `perf inject --jit`.
> It also makes no source code information show up in 'perf annotate'.
>
> Signed-off-by: Elisabeth Panholzer <elisabeth@xxxxxxxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: linux-perf-users@xxxxxxxxxxxxxxx

Applied to perf-tools-next, thanks!