summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2010-02-18 23:41:38 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2010-02-18 23:41:38 -0500
commitb2edaec1f711edbe28cc72b960efaf24d4cdc06a (patch)
tree4a6d71c7cc8e393afb27983eb17aaa3f1b6df58c
parente5826809d4b1bf545a41070caad23a013ce7817e (diff)
downloadlibpython-b2edaec1f711edbe28cc72b960efaf24d4cdc06a.tar.gz
libpython-b2edaec1f711edbe28cc72b960efaf24d4cdc06a.tar.xz
libpython-b2edaec1f711edbe28cc72b960efaf24d4cdc06a.zip
Add PyBoolObject, converting ob_ival in remote to True/False within gdb process
-rw-r--r--libpython.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/libpython.py b/libpython.py
index 8af75f5..da19554 100644
--- a/libpython.py
+++ b/libpython.py
@@ -180,7 +180,8 @@ class PyObjectPtr(object):
else:
return PyIntObjectPtr
- name_map = {'classobj': PyClassObjectPtr,
+ name_map = {'bool' : PyBoolObjectPtr,
+ 'classobj': PyClassObjectPtr,
'dict': PyDictObjectPtr,
'instance': PyInstanceObjectPtr,
'list': PyListObjectPtr,
@@ -229,6 +230,19 @@ class PyObjectPtr(object):
def get_gdb_type(cls):
return gdb.lookup_type(cls._typename).pointer()
+class PyBoolObjectPtr(PyObjectPtr):
+ """
+ Class wrapping a gdb.Value that's a PyBoolObject* i.e. one of the two
+ <bool> instances (Py_True/Py_False) within the process being debugged.
+ """
+ _typename = 'PyBoolObject'
+
+ def proxyval(self):
+ if int_from_int(self.field('ob_ival')):
+ return True
+ else:
+ return False
+
class PyClassObjectPtr(PyObjectPtr):
"""
Class wrapping a gdb.Value that's a PyClassObject* i.e. a <classobj>