On Thu, 17 Jul 2014 00:45:09 +0200, <jing...@apple.com> wrote:
llvm doesn't include method definitions in the type DIEs for an ObjC
class, just the properties and ivars(neither did gcc.) The method table
for ObjC is dynamic so I'm not sure it would make sense to do this.
lldb currently looks up method invocations one by one when it needs them
(mostly in the expression parser) from the subroutine DIEs at the
definition sites of the methods if we have debug information for them,
or from the ObjC runtime as a fallback. Since there's no reason to do so
and it would be fairly expensive, lldb doesn't try to gather all the
methods into its type representation for the class by hand.
I need that info for my own language frontend, would there be any interest
in a patch that lets me find this information (and maybe the static
vars/consts on a class once i figure out how to encode them) from the
SBType side?
The internal API's have FindSymbols & FindFunctions APIs that take
regular expression search patterns. You could get all the symbols &
functions matching "^-[MyClass" and "^+[MyClass", that would get you the
methods whose names we know about (though not necessarily which method
would actually get invoked when a given selector is sent.) A lookup by
regexp on SBTarget wouldn't be a bad addition either...
I can try and build a patch for that.
--
Carlo Kok
RemObjects Software
_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev