faddr2line: Fix overlapping text section failures, the sequel
authorJosh Poimboeuf <jpoimboe@kernel.org>
Thu, 2 Jun 2022 00:42:22 +0000 (17:42 -0700)
committerJosh Poimboeuf <jpoimboe@kernel.org>
Mon, 6 Jun 2022 18:50:11 +0000 (11:50 -0700)
commitdcea997beed694cbd8705100ca1a6eb0d886de69
treebb1a8f2d8b33e60043d5b1e0a9809a912ecd8d11
parentc2f75a43f5ae48b9babeb5b82c9f23fe18d3d144
faddr2line: Fix overlapping text section failures, the sequel

If a function lives in a section other than .text, but .text also exists
in the object, faddr2line may wrongly assume .text.  This can result in
comically wrong output.  For example:

  $ scripts/faddr2line vmlinux.o enter_from_user_mode+0x1c
  enter_from_user_mode+0x1c/0x30:
  find_next_bit at /home/jpoimboe/git/linux/./include/linux/find.h:40
  (inlined by) perf_clear_dirty_counters at /home/jpoimboe/git/linux/arch/x86/events/core.c:2504

Fix it by passing the section name to addr2line, unless the object file
is vmlinux, in which case the symbol table uses absolute addresses.

Fixes: 1d1a0e7c5100 ("scripts/faddr2line: Fix overlapping text section failures")
Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/7d25bc1408bd3a750ac26e60d2f2815a5f4a8363.1654130536.git.jpoimboe@kernel.org
scripts/faddr2line