perf report: Find the inline stack for a given address
It would be useful for perf to support a mode to query the inline stack for a given callgraph address. This would simplify finding the right code in code that does a lot of inlining. The srcline.c has contained the code which supports to translate the address to filename:line_nr. This patch just extends the function to let it support getting the inline stacks. It introduces the inline_list which will store the inline function result (filename:line_nr and funcname). If BFD lib is not supported, the result is only filename:line_nr. Signed-off-by: Yao Jin <yao.jin@linux.intel.com> Tested-by: Milian Wolff <milian.wolff@kdab.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@intel.com> Link: http://lkml.kernel.org/r/1490474069-15823-3-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
5580338d0f
commit
a64489c56c
@@ -364,4 +364,20 @@ int is_printable_array(char *p, unsigned int len);
|
||||
int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz);
|
||||
|
||||
int unit_number__scnprintf(char *buf, size_t size, u64 n);
|
||||
|
||||
struct inline_list {
|
||||
char *filename;
|
||||
char *funcname;
|
||||
unsigned int line_nr;
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
struct inline_node {
|
||||
u64 addr;
|
||||
struct list_head val;
|
||||
};
|
||||
|
||||
struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr);
|
||||
void inline_node__delete(struct inline_node *node);
|
||||
|
||||
#endif /* GIT_COMPAT_UTIL_H */
|
||||
|
Reference in New Issue
Block a user