diff options
author | David Malcolm <dmalcolm@redhat.com> | 2010-02-18 23:41:38 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2010-02-18 23:41:38 -0500 |
commit | b2edaec1f711edbe28cc72b960efaf24d4cdc06a (patch) | |
tree | 4a6d71c7cc8e393afb27983eb17aaa3f1b6df58c | |
parent | e5826809d4b1bf545a41070caad23a013ce7817e (diff) | |
download | libpython-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.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> |