From: Arnaldo Carvalho de Melo <acme-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
To: Rakesh Pandit <rakesh.pandit-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: dwarves-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: option for printing all matching function names
Date: Wed, 5 May 2010 10:12:30 -0300 [thread overview]
Message-ID: <20100505131230.GA10363@ghostprotocols.net> (raw)
In-Reply-To: <20100505124401.GG970-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
Em Wed, May 05, 2010 at 09:44:01AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, May 05, 2010 at 05:15:20PM +0530, Rakesh Pandit escreveu:
> > If we are using pfunct right with option --function, it prints the
> > first matched function name. This does not satisfy those cases where
> > object file has more then one functions with same name. I would like
> > it to print all matching cases not just the first one. Would it be
> > acceptable ? Or if it is not acceptable as it may break few scripts
> > written by users which are consuming the tool. An alternate
> > implementation could be if supplied with an extra option print all
> > matches and by default just print first one.
> >
> > Suggestions ? If any of above to is acceptable I can straight right
> > down a patch accordingly.
>
> well, if you say something like:
>
> pfunct --function do_read --all-units
>
> Meaning that it will print something like:
>
> obj_foo: void do_read(char buffer);
> obj_bar: int do_read(char bf, int size);
> obj_baz: size_t do_read(int fd, char buf, int ln);
>
> Its useful, send the patch :-)
But that is not exactly what you want, as you more precisely described
here:
https://bugzilla.redhat.com/show_bug.cgi?id=495606
<quote>
Actually this does not results in correct match because corresponding
symbool name which we provide it with function arg is mangled. In case
we want to get a perfect matched we need to provide it de-mangled actual
function name.
But for C++ say (even in C) we can have more then one function with same
name. In that case right now it will just print the first match.
</quote>
So what you want is that we traverse all the C++ classes finding which
ones have methods with that name, which is way more sensible than what
pfunct, being mostly oriented, so far, to C, does.
I don't have time right now to devote to this, but what you want is to:
1. go on CU by CU looking at all structs
2. look at each namespace in them looking for functions with the desired
name, printing it in some C++ sensible way, perhaps:
return_type1 class_foo::method_searched(parameter list1); /* mangled name=EQWTVARSAE */
return_type2 class_foo::method_searched(parameter list2); /* mangled name=YTEYRWTQRD */
etc.
What I suggested about --all-units still is useful as we can have the
functions with the same name in multiple object files in C too, they
just have to be static not to cause linking problems.
- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-05-05 13:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-05 11:45 option for printing all matching function names Rakesh Pandit
[not found] ` <q2qb401d2531005050445wb33461ecnab0f752909fb4a4-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-05-05 12:44 ` Arnaldo Carvalho de Melo
[not found] ` <20100505124401.GG970-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2010-05-05 13:12 ` Arnaldo Carvalho de Melo [this message]
[not found] ` <20100505131230.GA10363-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2010-05-05 14:30 ` Rakesh Pandit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100505131230.GA10363@ghostprotocols.net \
--to=acme-f8uhvlngfzaxayomlchx1axock334eze@public.gmane.org \
--cc=dwarves-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rakesh.pandit-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.