[lldb-dev] How do you call complex methods from python?

jingham at apple.com jingham at apple.com
Mon Oct 6 11:29:49 PDT 2014


Enrico is the man for this sort of thing, but as I understand it, fancy argument conversions from the SB API's into Python methods are governed by %typemap swig directives, there are a bunch of these in scripts/Python/python-typemaps.swig.  But swig has default handling for C++ references, so I would imagine that you just make a python variable initialized to some ConnectionStatus enum value, and then pass that in.  Does that not work?

Jim




> On Oct 2, 2014, at 6:00 PM, Zachary Turner <zturner at google.com> wrote:
> 
> When public methods take complex arguments like char*'s that get written into, parameters passed by reference, etc, how do we know what syntax to call them with from Python?
> 
> For example, consider this method:
> 
> size_t
> SBCommunication::Read (void *dst, size_t dst_len, uint32_t timeout_usec, ConnectionStatus &status)
> 
> The first argument is a buffer that gets written to.  The last argument is a ConnectionStatus that gets passed by reference.  In lldb, I'm doing the following:
> 
> >>> comm = lldb.SBCommunication("test")
> >>> comm.Connect("file://d:\\file1.cpp")
> >>> comm.Read(?????)
> 
> How do I write this so that it works?
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list