mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
gh-101517: make bdb avoid looking up in linecache with lineno=None (GH-101787)
(cherry picked from commit 366b949058
)
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
This commit is contained in:
parent
4b8d2a1b40
commit
b0bba7ad14
3 changed files with 11 additions and 3 deletions
|
@ -570,9 +570,10 @@ class Bdb:
|
|||
rv = frame.f_locals['__return__']
|
||||
s += '->'
|
||||
s += reprlib.repr(rv)
|
||||
line = linecache.getline(filename, lineno, frame.f_globals)
|
||||
if line:
|
||||
s += lprefix + line.strip()
|
||||
if lineno is not None:
|
||||
line = linecache.getline(filename, lineno, frame.f_globals)
|
||||
if line:
|
||||
s += lprefix + line.strip()
|
||||
return s
|
||||
|
||||
# The following methods can be called by clients to use
|
||||
|
|
|
@ -1203,5 +1203,11 @@ class IssuesTestCase(BaseTestCase):
|
|||
tracer.runcall(tfunc_import)
|
||||
|
||||
|
||||
class TestRegressions(unittest.TestCase):
|
||||
def test_format_stack_entry_no_lineno(self):
|
||||
# See gh-101517
|
||||
Bdb().format_stack_entry((sys._getframe(), None))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fixed bug where :mod:`bdb` looks up the source line with :mod:`linecache` with a ``lineno=None``, which causes it to fail with an unhandled exception.
|
Loading…
Add table
Add a link
Reference in a new issue