summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/scripts/Python')
-rw-r--r--lldb/scripts/Python/interface/SBThread.i10
-rw-r--r--lldb/scripts/Python/python-extensions.swig208
2 files changed, 192 insertions, 26 deletions
diff --git a/lldb/scripts/Python/interface/SBThread.i b/lldb/scripts/Python/interface/SBThread.i
index c77706a6f4a..fbb1e4ebd6d 100644
--- a/lldb/scripts/Python/interface/SBThread.i
+++ b/lldb/scripts/Python/interface/SBThread.i
@@ -175,6 +175,13 @@ public:
GetDescription (lldb::SBStream &description) const;
%pythoncode %{
+ def get_thread_frames(self):
+ frames = []
+ for frame in self:
+ frames.append(frame)
+ return frames
+
+
__swig_getmethods__["id"] = GetThreadID
if _newclass: x = property(GetThreadID, None)
@@ -190,6 +197,9 @@ public:
__swig_getmethods__["num_frames"] = GetNumFrames
if _newclass: x = property(GetNumFrames, None)
+ __swig_getmethods__["frames"] = get_thread_frames
+ if _newclass: x = property(get_thread_frames, None)
+
__swig_getmethods__["name"] = GetName
if _newclass: x = property(GetName, None)
diff --git a/lldb/scripts/Python/python-extensions.swig b/lldb/scripts/Python/python-extensions.swig
index e0ddbebd2d6..13ed5578b11 100644
--- a/lldb/scripts/Python/python-extensions.swig
+++ b/lldb/scripts/Python/python-extensions.swig
@@ -3,182 +3,338 @@
PyObject *lldb::SBAddress::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBBlock {
PyObject *lldb::SBBlock::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBBreakpoint {
PyObject *lldb::SBBreakpoint::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBBreakpointLocation {
PyObject *lldb::SBBreakpointLocation::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelFull);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBCommandReturnObject {
PyObject *lldb::SBCommandReturnObject::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBCompileUnit {
PyObject *lldb::SBCompileUnit::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBData {
PyObject *lldb::SBData::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBDebugger {
PyObject *lldb::SBDebugger::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBError {
PyObject *lldb::SBError::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBFileSpec {
PyObject *lldb::SBFileSpec::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBFrame {
PyObject *lldb::SBFrame::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBFunction {
PyObject *lldb::SBFunction::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBInstruction {
PyObject *lldb::SBInstruction::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBInstructionList {
PyObject *lldb::SBInstructionList::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBLineEntry {
PyObject *lldb::SBLineEntry::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBModule {
PyObject *lldb::SBModule::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBProcess {
PyObject *lldb::SBProcess::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBSection {
PyObject *lldb::SBSection::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBSymbol {
PyObject *lldb::SBSymbol::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBSymbolContext {
PyObject *lldb::SBSymbolContext::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBTarget {
PyObject *lldb::SBTarget::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelBrief);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBType {
PyObject *lldb::SBType::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelBrief);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBTypeMember {
PyObject *lldb::SBTypeMember::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelBrief);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBThread {
PyObject *lldb::SBThread::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBValue {
PyObject *lldb::SBValue::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
%extend lldb::SBWatchpoint {
PyObject *lldb::SBWatchpoint::__repr__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelVerbose);
- return PyString_FromString (description.GetData());
+ 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);
+ return Py_None;
}
}
OpenPOWER on IntegriCloud