Messages in this thread | | | From | Milian Wolff <> | Subject | Re: [PATCH v4 03/15] perf util: refactor inline_list to operate on symbols | Date | Sun, 08 Oct 2017 21:53:20 +0200 |
| |
On Donnerstag, 5. Oktober 2017 03:56:13 CEST Namhyung Kim wrote: > Hi Milian, > > On Sun, Oct 01, 2017 at 04:30:48PM +0200, Milian Wolff wrote: > > This is a requirement to create real callchain entries for inlined > > frames. > > > > Since the list of inlines usually contains the target symbol too, > > i.e. the location where the frames get inlined to, we alias that > > symbol and reuse it as-is is. This ensures that other dependent > > functionality keeps working, most notably annotation of the > > target frames. > > > > For all other entries in the inline_list, a fake symbol is created. > > These are marked by new 'inlined' member which is set to true. Only > > those symbols are managed by the inline_list and get freed when > > the inline_list is deleted from within inline_node__delete. > > > > Cc: Jiri Olsa <jolsa@redhat.com> > > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > > Cc: David Ahern <dsahern@gmail.com> > > Cc: Namhyung Kim <namhyung@kernel.org> > > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > > Cc: Yao Jin <yao.jin@linux.intel.com> > > Signed-off-by: Milian Wolff <milian.wolff@kdab.com> > > --- > > [SNIP] > > > +static struct symbol *new_inline_sym(struct dso *dso, > > + struct symbol *base_sym, > > + const char *funcname) > > +{ > > + struct symbol *inline_sym; > > + char *demangled = NULL; > > + > > + if (dso) { > > + demangled = dso__demangle_sym(dso, 0, funcname); > > + if (demangled) > > + funcname = demangled; > > + } > > + > > + if (strcmp(funcname, base_sym->name) == 0) { > > It seems you need to check availability of base_sym first as 'else' > statement below checks it. Or if it's guaranteed not NULL (I think > you make it so later), remove the check (and add an assert?) instead.
I'll make it fail-safe by adding the check before calling strcmp. Well spotted, many thanks!
-- Milian Wolff | milian.wolff@kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH&Co KG, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt Experts
| |