Convert all python objects in our API to use overload the __str__ method
instead of the __repr__. __repr__ is a function that should return an
expression that can be used to recreate an python object and we were using
it to just return a human readable string.
Fixed a crasher when using the new implementation of SBValue::Cast(SBType).
Thread hardened lldb::SBValue and lldb::SBWatchpoint and did other general
improvements to the API.
Fixed a crasher in lldb::SBValue::GetChildMemberWithName() where we didn't
correctly handle not having a target.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149743 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/scripts/Python/python-extensions.swig b/scripts/Python/python-extensions.swig
index 49172b3..c6c12fc 100644
--- a/scripts/Python/python-extensions.swig
+++ b/scripts/Python/python-extensions.swig
@@ -1,6 +1,6 @@
%extend lldb::SBAddress {
- PyObject *lldb::SBAddress::__repr__ (){
+ PyObject *lldb::SBAddress::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -9,11 +9,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBBlock {
- PyObject *lldb::SBBlock::__repr__ (){
+ PyObject *lldb::SBBlock::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -22,11 +23,13 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
+
}
}
%extend lldb::SBBreakpoint {
- PyObject *lldb::SBBreakpoint::__repr__ (){
+ PyObject *lldb::SBBreakpoint::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -35,11 +38,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBBreakpointLocation {
- PyObject *lldb::SBBreakpointLocation::__repr__ (){
+ PyObject *lldb::SBBreakpointLocation::__str__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelFull);
const char *desc = description.GetData();
@@ -48,11 +52,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBCommandReturnObject {
- PyObject *lldb::SBCommandReturnObject::__repr__ (){
+ PyObject *lldb::SBCommandReturnObject::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -61,11 +66,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBCompileUnit {
- PyObject *lldb::SBCompileUnit::__repr__ (){
+ PyObject *lldb::SBCompileUnit::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -74,11 +80,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBData {
- PyObject *lldb::SBData::__repr__ (){
+ PyObject *lldb::SBData::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -87,11 +94,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBDebugger {
- PyObject *lldb::SBDebugger::__repr__ (){
+ PyObject *lldb::SBDebugger::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -100,11 +108,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBError {
- PyObject *lldb::SBError::__repr__ (){
+ PyObject *lldb::SBError::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -113,11 +122,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBFileSpec {
- PyObject *lldb::SBFileSpec::__repr__ (){
+ PyObject *lldb::SBFileSpec::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -126,11 +136,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBFrame {
- PyObject *lldb::SBFrame::__repr__ (){
+ PyObject *lldb::SBFrame::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -139,11 +150,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBFunction {
- PyObject *lldb::SBFunction::__repr__ (){
+ PyObject *lldb::SBFunction::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -152,11 +164,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBInstruction {
- PyObject *lldb::SBInstruction::__repr__ (){
+ PyObject *lldb::SBInstruction::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -165,11 +178,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBInstructionList {
- PyObject *lldb::SBInstructionList::__repr__ (){
+ PyObject *lldb::SBInstructionList::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -178,11 +192,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBLineEntry {
- PyObject *lldb::SBLineEntry::__repr__ (){
+ PyObject *lldb::SBLineEntry::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -191,11 +206,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBModule {
- PyObject *lldb::SBModule::__repr__ (){
+ PyObject *lldb::SBModule::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -204,11 +220,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBProcess {
- PyObject *lldb::SBProcess::__repr__ (){
+ PyObject *lldb::SBProcess::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -217,11 +234,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBSection {
- PyObject *lldb::SBSection::__repr__ (){
+ PyObject *lldb::SBSection::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -230,11 +248,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBSymbol {
- PyObject *lldb::SBSymbol::__repr__ (){
+ PyObject *lldb::SBSymbol::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -243,11 +262,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBSymbolContext {
- PyObject *lldb::SBSymbolContext::__repr__ (){
+ PyObject *lldb::SBSymbolContext::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -256,11 +276,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBTarget {
- PyObject *lldb::SBTarget::__repr__ (){
+ PyObject *lldb::SBTarget::__str__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelBrief);
const char *desc = description.GetData();
@@ -269,11 +290,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBType {
- PyObject *lldb::SBType::__repr__ (){
+ PyObject *lldb::SBType::__str__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelBrief);
const char *desc = description.GetData();
@@ -282,11 +304,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBTypeMember {
- PyObject *lldb::SBTypeMember::__repr__ (){
+ PyObject *lldb::SBTypeMember::__str__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelBrief);
const char *desc = description.GetData();
@@ -295,11 +318,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBThread {
- PyObject *lldb::SBThread::__repr__ (){
+ PyObject *lldb::SBThread::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -308,11 +332,12 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBValue {
- PyObject *lldb::SBValue::__repr__ (){
+ PyObject *lldb::SBValue::__str__ (){
lldb::SBStream description;
$self->GetDescription (description);
const char *desc = description.GetData();
@@ -321,7 +346,8 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
%extend lldb::SBValueList {
@@ -347,7 +373,7 @@
}
}
%extend lldb::SBWatchpoint {
- PyObject *lldb::SBWatchpoint::__repr__ (){
+ PyObject *lldb::SBWatchpoint::__str__ (){
lldb::SBStream description;
$self->GetDescription (description, lldb::eDescriptionLevelVerbose);
const char *desc = description.GetData();
@@ -356,7 +382,8 @@
--desc_len;
if (desc_len > 0)
return PyString_FromStringAndSize (desc, desc_len);
- return Py_None;
+ else
+ return PyString_FromString("");
}
}
@@ -382,9 +409,6 @@
def __nonzero__(self):
return self.sbvalue.__nonzero__()
- def __repr__(self):
- return self.sbvalue.__repr__()
-
def __str__(self):
return self.sbvalue.__str__()