Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Description
Bug report
Context: this issue came out of a discussion in #python on the Libera.chat IRC network, where a user wanted to peek intoimportlib._bootstrap withpdb while chasing a bug.
pdb is capable of stepping into function calls into frozen modules, but thelist command cannot locate the source code necessary to display the source being stepped through.
# repro.pyimportimportlib._bootstrap# some function call that we want to step into with pdbimportlib._bootstrap._resolve_name("os",".",1)
$ python3 -m pdb repro.py> /home/snoopjedi/repro.py(2)<module>()-> import importlib._bootstrap(Pdb) n> /home/snoopjedi/repro.py(5)<module>()-> importlib._bootstrap._resolve_name("os", ".", 1)(Pdb) s--Call--> <frozen importlib._bootstrap>(883)_resolve_name()(Pdb) l[EOF]Note that executingsource importlib._bootstrap from the frame that calls into this moduledoes successfully locate the source, but this isn't very useful to a user ofpdb.
I believe that bringing the frame'sco_filename into agreement with the module's__file__ would fix this issue without changes topdb (see#89815), but thought it would be good to track the issue withpdb in a separate ticket since that fix is more nuanced and I think I have an interim patch for the debugger.
Your environment
- CPython versions tested on: 3.9.4, 3.11.0b3
- Operating system and architecture: Ubuntu 20.04, x86_64