[lldb-dev] SBFunction::Invoke?
Carlo Kok
ck at remobjects.com
Fri Sep 19 11:57:50 PDT 2014
On Fri, 19 Sep 2014 20:33:55 +0200, <jingham at apple.com> wrote:
> At present we use the expression parser to get around having to know the
> argument and return value passing rules for a given platform in all
> their gory details.
>
> We have a bug in with the llvm folks to get a way to tell us "given this
> clang function type, where would all the individual arguments go, and
> where would the return type go?" When that is in place you could use it
> to implement what you are asking for. But I'd rather not code this up
> by hand in lldb. We did this for return values, just because folks
> wanted it, and it's a tricky bit of code to write per ABI, and easy to
> get wrong. I don't want to also have to do this in full generality for
> argument passing.
>
> At present, we have the ClangFunction class that does some of the job
> you intend. It still uses the expression parser, doesn't handle
> variadic functions, and doesn't do things like type promotion. But
> for many cases it works fine, and you could probably use that at
> present. One of the nice things about the ClangFunction class is that
> you can insert the code to call the function into the target and leave
> it there, and then re-call it many times with different values. We use
> this internally for various nefarious purposes. So it might be
> worthwhile to have an SBFunction object cache the ClangFunction made for
> it, so it could be reused.
I take it generating an SB* wrapper for ClangFunction makes no sense then?
I can wrap it on my side for my own purposes.
--
Carlo Kok
RemObjects Software
More information about the lldb-dev
mailing list