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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[Linux SCSI]
[XFree86]