• Masami Hiramatsu's avatar
    perf probe: Search concrete out-of-line instances · db0d2c64
    Masami Hiramatsu authored
    gcc 4.6 generates a concrete out-of-line instance when there is a
    function which is implicitly inlined somewhere but also has its own
    instance. The concrete out-of-line instance means that it has an
    abstract origin of the function which is referred by not only
    inlined-subroutines but also a concrete subprogram.
    
    Since current dwarf_func_inline_instances() can find only instances of
    inlined-subroutines, this introduces new die_walk_instances() to find
    both of subprogram and inlined-subroutines.
    
    e.g. without this,
    Available variables at sched_group_rt_period
            @<cpu_rt_period_read_uint+9>
                    struct task_group*      tg
    
    perf probe failed to find actual subprogram instance of
    sched_group_rt_period().
    
    With this,
    
    Available variables at sched_group_rt_period
            @<cpu_rt_period_read_uint+9>
                    struct task_group*      tg
            @<sched_group_rt_period+0>
                    struct task_group*      tg
    
    Now it found the sched_group_rt_period() itself.
    
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: yrl.pp-manager.tt@hitachi.com
    Link: http://lkml.kernel.org/r/20110811110311.19900.63997.stgit@fedora15Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    db0d2c64
dwarf-aux.h 4.05 KB