Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34k
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 into importlib._bootstrap with pdb while chasing a bug.
pdb is capable of stepping into function calls into frozen modules, but the list 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 executing source importlib._bootstrap from the frame that calls into this module does successfully locate the source, but this isn't very useful to a user of pdb.
I believe that bringing the frame's co_filename into agreement with the module's __file__ would fix this issue without changes to pdb (see #89815), but thought it would be good to track the issue with pdb 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