mirror of
https://github.com/python/cpython.git
synced 2025-12-23 09:19:18 +00:00
[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.
This commit is contained in:
parent
4296396db0
commit
2a32dbf110
3 changed files with 30 additions and 1 deletions
|
|
@ -955,6 +955,31 @@ id(42)
|
|||
self.assertRegex(gdb_output,
|
||||
r"<method-wrapper u?'__init__' of MyList object at ")
|
||||
|
||||
@unittest.skipIf(python_is_optimized(),
|
||||
"Python was compiled with optimizations")
|
||||
def test_try_finally_lineno(self):
|
||||
cmd = textwrap.dedent('''
|
||||
def foo(x):
|
||||
try:
|
||||
raise RuntimeError("error")
|
||||
return x
|
||||
except:
|
||||
id("break point")
|
||||
finally:
|
||||
x += 2
|
||||
return x
|
||||
r = foo(3)
|
||||
''')
|
||||
gdb_output = self.get_stack_trace(cmd,
|
||||
cmds_after_breakpoint=["py-bt"])
|
||||
self.assertMultilineMatches(gdb_output,
|
||||
r'''^.*
|
||||
Traceback \(most recent call first\):
|
||||
<built-in method id of module object .*>
|
||||
File "<string>", line 7, in foo
|
||||
File "<string>", line 11, in <module>
|
||||
''')
|
||||
|
||||
|
||||
class PyPrintTests(DebuggerTests):
|
||||
@unittest.skipIf(python_is_optimized(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue