diff options
Diffstat (limited to 'libpython.py')
-rw-r--r-- | libpython.py | 16 |
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> |