]> git.ipfire.org Git - people/arne_f/kernel.git/commit
perf probe: Walk function lines in lexical blocks
authorMasami Hiramatsu <mhiramat@kernel.org>
Thu, 24 Oct 2019 09:12:45 +0000 (18:12 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Dec 2019 11:37:26 +0000 (12:37 +0100)
commit0fe578acbe986ae6d080f5839a7ed9f0eb76b54c
treeb184fc61ac91b467483de3e81481ae96ef610248
parent32ee45d86c5e8191d3408c2d0403fbefc29230cf
perf probe: Walk function lines in lexical blocks

[ Upstream commit acb6a7047ac2146b723fef69ee1ab6b7143546bf ]

Since some inlined functions are in lexical blocks of given function, we
have to recursively walk through the DIE tree.  Without this fix,
perf-probe -L can miss the inlined functions which is in a lexical block
(like if (..) { func() } case.)

However, even though, to walk the lines in a given function, we don't
need to follow the children DIE of inlined functions because those do
not have any lines in the specified function.

We need to walk though whole trees only if we walk all lines in a given
file, because an inlined function can include another inlined function
in the same file.

Fixes: b0e9cb2802d4 ("perf probe: Fix to search nested inlined functions in CU")
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lore.kernel.org/lkml/157190836514.1859.15996864849678136353.stgit@devnote2
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/perf/util/dwarf-aux.c