diff options
Diffstat (limited to 'lldb/scripts/Python')
-rwxr-xr-x | lldb/scripts/Python/build-swig-Python.sh | 1 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBDeclaration.i | 62 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBValue.i | 3 | ||||
-rw-r--r-- | lldb/scripts/Python/python-extensions.swig | 14 |
4 files changed, 80 insertions, 0 deletions
diff --git a/lldb/scripts/Python/build-swig-Python.sh b/lldb/scripts/Python/build-swig-Python.sh index 386dde6d342..a38d2ff91f4 100755 --- a/lldb/scripts/Python/build-swig-Python.sh +++ b/lldb/scripts/Python/build-swig-Python.sh @@ -117,6 +117,7 @@ INTERFACE_FILES="${SRC_ROOT}/scripts/Python/interface/SBAddress.i"\ " ${SRC_ROOT}/scripts/Python/interface/SBCompileUnit.i"\ " ${SRC_ROOT}/scripts/Python/interface/SBData.i"\ " ${SRC_ROOT}/scripts/Python/interface/SBDebugger.i"\ +" ${SRC_ROOT}/scripts/Python/interface/SBDeclaration.i"\ " ${SRC_ROOT}/scripts/Python/interface/SBError.i"\ " ${SRC_ROOT}/scripts/Python/interface/SBEvent.i"\ " ${SRC_ROOT}/scripts/Python/interface/SBFileSpec.i"\ diff --git a/lldb/scripts/Python/interface/SBDeclaration.i b/lldb/scripts/Python/interface/SBDeclaration.i new file mode 100644 index 00000000000..a3709aef9e1 --- /dev/null +++ b/lldb/scripts/Python/interface/SBDeclaration.i @@ -0,0 +1,62 @@ +//===-- SWIG Interface for SBDeclaration --------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +namespace lldb { + + %feature("docstring", + "Specifies an association with a line and column for a variable." + ) SBDeclaration; + class SBDeclaration + { + public: + + SBDeclaration (); + + SBDeclaration (const lldb::SBDeclaration &rhs); + + ~SBDeclaration (); + + bool + IsValid () const; + + lldb::SBFileSpec + GetFileSpec () const; + + uint32_t + GetLine () const; + + uint32_t + GetColumn () const; + + bool + GetDescription (lldb::SBStream &description); + + void + SetFileSpec (lldb::SBFileSpec filespec); + + void + SetLine (uint32_t line); + + void + SetColumn (uint32_t column); + + %pythoncode %{ + __swig_getmethods__["file"] = GetFileSpec + if _newclass: file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''') + + __swig_getmethods__["line"] = GetLine + if _newclass: ling = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''') + + __swig_getmethods__["column"] = GetColumn + if _newclass: column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''') + %} + + }; + +} // namespace lldb diff --git a/lldb/scripts/Python/interface/SBValue.i b/lldb/scripts/Python/interface/SBValue.i index c00276b76ab..e316637f9e6 100644 --- a/lldb/scripts/Python/interface/SBValue.i +++ b/lldb/scripts/Python/interface/SBValue.i @@ -281,6 +281,9 @@ public: lldb::SBValue GetValueForExpressionPath(const char* expr_path); + lldb::SBDeclaration + GetDeclaration (); + uint32_t GetNumChildren (); diff --git a/lldb/scripts/Python/python-extensions.swig b/lldb/scripts/Python/python-extensions.swig index 19868fba811..89ad1b29e1c 100644 --- a/lldb/scripts/Python/python-extensions.swig +++ b/lldb/scripts/Python/python-extensions.swig @@ -111,6 +111,20 @@ return PyString_FromString(""); } } +%extend lldb::SBDeclaration { + PyObject *lldb::SBDeclaration::__str__ (){ + lldb::SBStream description; + $self->GetDescription (description); + const char *desc = description.GetData(); + size_t desc_len = description.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) + --desc_len; + if (desc_len > 0) + return PyString_FromStringAndSize (desc, desc_len); + else + return PyString_FromString(""); + } +} %extend lldb::SBError { PyObject *lldb::SBError::__str__ (){ lldb::SBStream description; |