diff options
author | Sam Gross <colesbury@gmail.com> | 2021-11-19 18:53:46 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-19 18:53:46 (GMT) |
commit | 2a32dbf110cf80ec9a00290ea6bc84f409948cb0 (patch) | |
tree | a98887dee31d3b87f8d1aa2bbbd3c70da894b0d3 /Tools/gdb/libpython.py | |
parent | 4296396db017d782d3aa16100b366748c9ea4a04 (diff) | |
download | cpython-2a32dbf110cf80ec9a00290ea6bc84f409948cb0.zip cpython-2a32dbf110cf80ec9a00290ea6bc84f409948cb0.tar.gz cpython-2a32dbf110cf80ec9a00290ea6bc84f409948cb0.tar.bz2 |
[3.9] bpo-45838: Fix incorrect line numbers in Tools/gdb/libpython.py (GH-29628)
The line number calculation in libpython.py did not properly handle
negative (signed) line table deltas.
Diffstat (limited to 'Tools/gdb/libpython.py')
-rwxr-xr-x | Tools/gdb/libpython.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index aeaa63e..45be5ab 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -659,7 +659,10 @@ class PyCodeObjectPtr(PyObjectPtr): addr += ord(addr_incr) if addr > addrq: return lineno - lineno += ord(line_incr) + line_delta = ord(line_incr) + if line_delta >= 128: + line_delta -= 256 + lineno += line_delta return lineno |