diff --git a/Lib/bdb.py b/Lib/bdb.py index 75d6113576372e..56ddfc2cf4756b 100644 --- a/Lib/bdb.py +++ b/Lib/bdb.py @@ -33,6 +33,7 @@ def __init__(self, skip=None): self.breaks = {} self.fncache = {} self.frame_returning = None + self.botframe = None self._load_breaks() diff --git a/Lib/pdb.py b/Lib/pdb.py index ff40f7b2476a38..84102f8f50061c 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -1728,6 +1728,8 @@ def main(): print("Running 'cont' or 'step' will restart the program") t = sys.exc_info()[2] pdb.interaction(None, t) + if pdb._user_requested_quit: + break print("Post mortem debugger finished. The " + mainpyfile + " will be restarted") diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 0724b666a3bf8d..f8b52823be41ae 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -1695,6 +1695,20 @@ def test_module_without_a_main(self): self.assertIn("ImportError: No module named t_main.__main__", stdout.splitlines()) + def test_package_without_a_main(self): + pkg_name = 't_pkg' + module_name = 't_main' + os_helper.rmtree(pkg_name) + modpath = pkg_name + '/' + module_name + os.makedirs(modpath) + with open(modpath + '/__init__.py', 'w') as f: + pass + self.addCleanup(os_helper.rmtree, pkg_name) + stdout, stderr = self._run_pdb(['-m', modpath.replace('/', '.')], "") + self.assertIn( + "'t_pkg.t_main' is a package and cannot be directly executed", + stdout) + def test_blocks_at_first_code_line(self): script = """ #This is a comment, on line 2 diff --git a/Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst b/Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst new file mode 100644 index 00000000000000..02e25e928b9cff --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst @@ -0,0 +1 @@ +Fix bug with :mod:`pdb`'s handling of import error due to a package which does not have a ``__main__`` module \ No newline at end of file pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy