summaryrefslogtreecommitdiff
path: root/Tools/gdb/libpython.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/gdb/libpython.py')
-rwxr-xr-xTools/gdb/libpython.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
index 00cdcca084..4f7a8bca5f 100755
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -1015,7 +1015,10 @@ class PyFramePtr:
return self._f_special("nlocalsplus", int_from_int)
def _f_lasti(self):
- return self._f_special("f_lasti", int_from_int)
+ codeunit_p = gdb.lookup_type("_Py_CODEUNIT").pointer()
+ prev_instr = self._gdbval["prev_instr"]
+ first_instr = self._f_code().field("co_code_adaptive").cast(codeunit_p)
+ return int(prev_instr - first_instr)
def is_entry(self):
return self._f_special("is_entry", bool)