summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python/python-extensions.swig
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-02-01 02:30:27 +0000
committerGreg Clayton <gclayton@apple.com>2012-02-01 02:30:27 +0000
commit2415586faacce72742020c4221719cb87f2081b6 (patch)
tree0d95fc9813fc94d0cc0950a040c95748f64a07d1 /lldb/scripts/Python/python-extensions.swig
parentfdc80a5cf7a4f62e32c42641a48ae2e249e4572e (diff)
downloadbcm5719-llvm-2415586faacce72742020c4221719cb87f2081b6.tar.gz
bcm5719-llvm-2415586faacce72742020c4221719cb87f2081b6.zip
Added a new convenience property on lldb.SBThread names "frames" which always returns a complete list of all lldb.SBFrame objects:
(lldb) script >>> frames = lldb.thread.frames >>> for frame in frames: ... print frame Also changed all of the "__repr__" methods to strip any trailing newline characters so we don't end up with entra newlines. llvm-svn: 149466
Diffstat (limited to 'lldb/scripts/Python/python-extensions.swig')
-rw-r--r--lldb/scripts/Python/python-extensions.swig208
1 files changed, 182 insertions, 26 deletions
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