summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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>