From b2edaec1f711edbe28cc72b960efaf24d4cdc06a Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 18 Feb 2010 23:41:38 -0500 Subject: Add PyBoolObject, converting ob_ival in remote to True/False within gdb process --- libpython.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 + 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 -- cgit