summaryrefslogtreecommitdiffstats
path: root/Tools/gdb/libpython.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/gdb/libpython.py')
-rwxr-xr-xTools/gdb/libpython.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
index c1d2cd8..756b52c 100755
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -871,7 +871,8 @@ class PyFrameObjectPtr(PyObjectPtr):
self.f_lineno = int_from_int(self.field('f_lineno'))
self.f_lasti = int_from_int(self.field('f_lasti'))
self.co_nlocals = int_from_int(self.co.field('co_nlocals'))
- self.co_varnames = PyTupleObjectPtr.from_pyobject_ptr(self.co.field('co_varnames'))
+ pnames = self.co.field('co_localsplusnames')
+ self.co_localsplusnames = PyTupleObjectPtr.from_pyobject_ptr(pnames)
def iter_locals(self):
'''
@@ -884,9 +885,10 @@ class PyFrameObjectPtr(PyObjectPtr):
f_localsplus = self.field('f_localsptr')
for i in safe_range(self.co_nlocals):
pyop_value = PyObjectPtr.from_pyobject_ptr(f_localsplus[i])
- if not pyop_value.is_null():
- pyop_name = PyObjectPtr.from_pyobject_ptr(self.co_varnames[i])
- yield (pyop_name, pyop_value)
+ if pyop_value.is_null():
+ continue
+ pyop_name = PyObjectPtr.from_pyobject_ptr(self.co_localsplusnames[i])
+ yield (pyop_name, pyop_value)
def _f_globals(self):
f_localsplus = self.field('f_localsptr')