On Fri, Sep 16, 2016 at 11:12:10AM -0700, Linus Torvalds wrote: > On Fri, Sep 16, 2016 at 7:48 AM, Josh Poimboeuf <jpoim...@redhat.com> wrote: > > > > Here's something a lot faster than gdb, which also handles duplicate > > symbols properly. > > Ack. > > Side note: I find addr2line almost completely useless in many cases > not because of address space randomization, but because of how complex > the inlining often is. I just had something where I decided to use > addr2line and it just pointed me to the __read_once_size_nocheck() > line in <linux/compiler.h>. That was not very useful. > > I ended up actually looking at the instructions *around* it, to find > where that one instruction had been inlined from. > > So I'm wondering if this kind of helper script could be extended to > have that "look around it" thing to help.
I think that issue is solved by addr2line's '--inline' option, which the script uses: $ scripts/faddr2line vmlinux show_stack_log_lvl+0x28 /home/jpoimboe/git/linux/include/linux/compiler.h:220 /home/jpoimboe/git/linux/arch/x86/include/asm/atomic.h:26 /home/jpoimboe/git/linux/arch/x86/include/asm/atomic.h:240 /home/jpoimboe/git/linux/include/linux/atomic.h:506 /home/jpoimboe/git/linux/include/linux/sched.h:3154 /home/jpoimboe/git/linux/arch/x86/kernel/dumpstack_64.c:151 > Finally, I note that *if* you hit the "multiple copies of the same > function name" issue, it might be a good idea to limit the function > name copies by their size/offset. Also, shouldn't you filter the > objdump for just functions Both the size and the function filtering > should be possible with some additional awk script magic. > > For example, in my current kernel build, I have the following object > names that are both functions and non-functions: > > event_function, irq_trigger, p_start, tbl_size, verbose, watchdog > > and I have 10 different versions of the function ("type_show()", with > sizes ranging from 26 bytes to 166 bytes. So both the function offset > filtering and the type filtering could definitely make a difference. Yeah, good ideas. That would help reduce some of the false duplicates, though they are quite rare. I'll see what I can do. -- Josh