| /* |
| lldb.swig |
| |
| Created by Caroline Tice 1/18/2010 |
| |
| This is the input file for SWIG, to create the appropriate C++ wrappers and |
| functions for various scripting languages, to enable them to call the |
| liblldb Script Bridge functions. |
| |
| */ |
| |
| /* The name of the module to be created. */ |
| |
| %module lldb |
| |
| %typemap(in) lldb::ReturnStatus { |
| $1 = (int) $input; |
| } |
| |
| %typemap(freearg) lldb::ReturnStatus { |
| } |
| |
| %typemap(out) lldb::ReturnStatus { |
| $result = SWIG_From_unsigned_SS_int(static_cast< unsigned int >($1)); |
| } |
| |
| /* Typemap definitions, to allow SWIG to properly handle 'char**' data types. */ |
| |
| %typemap(in) char ** { |
| /* Check if is a list */ |
| if (PyList_Check($input)) { |
| int size = PyList_Size($input); |
| int i = 0; |
| $1 = (char **) malloc((size+1) * sizeof(char)); |
| for (i = 0; i < size; i++) { |
| PyObject *o = PyList_GetItem($input,i); |
| if (PyString_Check(o)) |
| $1[i] = PyString_AsString(PyList_GetItem($input,i)); |
| else { |
| PyErr_SetString(PyExc_TypeError,"list must contain strings"); |
| free($1); |
| return NULL; |
| } |
| } |
| $1[i] = 0; |
| } else { |
| PyErr_SetString(PyExc_TypeError,"not a list"); |
| return NULL; |
| } |
| } |
| |
| %typemap(freearg) char** { |
| free((char *) $1); |
| } |
| |
| %typemap(out) char** { |
| int len; |
| int i; |
| len = 0; |
| while ($1[len]) len++; |
| $result = PyList_New(len); |
| for (i = 0; i < len; i++) { |
| PyList_SetItem($result, i, PyString_FromString($1[i])); |
| } |
| } |
| |
| |
| /* The liblld header files to be included. */ |
| |
| %{ |
| #include "lldb/lldb-types.h" |
| #include "lldb/API/SBAddress.h" |
| #include "lldb/API/SBBlock.h" |
| #include "lldb/API/SBBreakpoint.h" |
| #include "lldb/API/SBBreakpointLocation.h" |
| #include "lldb/API/SBBroadcaster.h" |
| #include "lldb/API/SBCommandContext.h" |
| #include "lldb/API/SBCommandInterpreter.h" |
| #include "lldb/API/SBCommandReturnObject.h" |
| #include "lldb/API/SBCompileUnit.h" |
| #include "lldb/API/SBDebugger.h" |
| #include "lldb/API/SBError.h" |
| #include "lldb/API/SBEvent.h" |
| #include "lldb/API/SBFrame.h" |
| #include "lldb/API/SBFunction.h" |
| #include "lldb/API/SBLineEntry.h" |
| #include "lldb/API/SBListener.h" |
| #include "lldb/API/SBModule.h" |
| #include "lldb/API/SBProcess.h" |
| #include "lldb/API/SBSourceManager.h" |
| #include "lldb/API/SBStringList.h" |
| #include "lldb/API/SBSymbol.h" |
| #include "lldb/API/SBSymbolContext.h" |
| #include "lldb/API/SBTarget.h" |
| #include "lldb/API/SBThread.h" |
| #include "lldb/API/SBType.h" |
| #include "lldb/API/SBValue.h" |
| using namespace lldb; |
| using namespace lldb_private; |
| %} |
| |
| /* Various liblldb typedefs that SWIG needs to know about. */ |
| |
| %{ |
| typedef unsigned int uint32_t; |
| typedef unsigned long long uint64_t; |
| typedef int int32_t; |
| typedef int32_t pid_t; |
| typedef uint32_t tid_t; |
| typedef uint64_t addr_t; |
| %} |
| |
| typedef unsigned int uint32_t; |
| typedef unsigned long long uint64_t; |
| typedef int int32_t; |
| typedef int32_t pid_t; |
| typedef uint32_t tid_t; |
| typedef uint64_t addr_t; |
| |
| |
| %include "lldb/API/SBAddress.h" |
| %include "lldb/API/SBBlock.h" |
| %include "lldb/API/SBBreakpoint.h" |
| %include "lldb/API/SBBreakpointLocation.h" |
| %include "lldb/API/SBBroadcaster.h" |
| %include "lldb/API/SBCommandContext.h" |
| %include "lldb/API/SBCommandInterpreter.h" |
| %include "lldb/API/SBCommandReturnObject.h" |
| %include "lldb/API/SBCompileUnit.h" |
| %include "lldb/API/SBDebugger.h" |
| %include "lldb/API/SBError.h" |
| %include "lldb/API/SBEvent.h" |
| %include "lldb/API/SBFrame.h" |
| %include "lldb/API/SBFunction.h" |
| %include "lldb/API/SBLineEntry.h" |
| %include "lldb/API/SBListener.h" |
| %include "lldb/API/SBModule.h" |
| %include "lldb/API/SBProcess.h" |
| %include "lldb/API/SBSourceManager.h" |
| %include "lldb/API/SBStringList.h" |
| %include "lldb/API/SBSymbol.h" |
| %include "lldb/API/SBSymbolContext.h" |
| %include "lldb/API/SBTarget.h" |
| %include "lldb/API/SBThread.h" |
| %include "lldb/API/SBType.h" |
| %include "lldb/API/SBValue.h" |
| %include "lldb/lldb-types.h" |
| |
| |