`pdb` commands may try to access non-existing frames
Ouverte
Personne n'a encore pris cette issue.
stdlib
type-bug
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
➜ cpython git:(main) ./python.exe
Python 3.15.0a0 (heads/main:919c7e806e, Sep 8 2025, 17:24:03) [Clang 17.0.0 (clang-1700.0.13.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> breakpoint()
> <python-input-0>(1)<module>()
(Pdb) breakpoint()
(Pdb) ll
Traceback (most recent call last):
File "<python-input-0>", line 1, in <module>
breakpoint()
~~~~~~~~~~^^
File "/Users/hyi/prs/cpython/Lib/bdb.py", line 94, in wrapper
ret = func(frame, *args)
File "/Users/hyi/prs/cpython/Lib/bdb.py", line 154, in opcode_callback
frame.f_trace(frame, 'opcode', None)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/hyi/prs/cpython/Lib/bdb.py", line 289, in trace_dispatch
return self.dispatch_opcode(frame, arg)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/Users/hyi/prs/cpython/Lib/bdb.py", line 406, in dispatch_opcode
self.user_opcode(frame)
~~~~~~~~~~~~~~~~^^^^^^^
File "/Users/hyi/prs/cpython/Lib/pdb.py", line 547, in user_line
self.interaction(frame, None)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/Users/hyi/prs/cpython/Lib/pdb.py", line 736, in interaction
self._cmdloop()
~~~~~~~~~~~~~^^
File "/Users/hyi/prs/cpython/Lib/pdb.py", line 601, in _cmdloop
self.cmdloop()
~~~~~~~~~~~~^^
File "/Users/hyi/prs/cpython/Lib/cmd.py", line 149, in cmdloop
stop = self.onecmd(line)
File "/Users/hyi/prs/cpython/Lib/pdb.py", line 1038, in onecmd
return cmd.Cmd.onecmd(self, line)
~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/Users/hyi/prs/cpython/Lib/cmd.py", line 227, in onecmd
return func(arg)
File "/Users/hyi/prs/cpython/Lib/pdb.py", line 2156, in do_longlist
filename = self.curframe.f_code.co_filename
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'f_code'
>>>
CPython versions tested on:
3.15, CPython main branch
Operating systems tested on:
Other
Linked PRs
- gh-138642
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez dans Lib/pdb.py, au niveau de do_longlist, et inspectez l’état de la frame atteint via la boucle de commandes ; le traceback identifie également Lib/bdb.py comme faisant partie du chemin d’appel. Reproduisez la séquence breakpoint() et ll, puis vérifiez que les commandes pdb ne lèvent plus d’AttributeError lorsqu’il n’existe aucune frame courante.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- cli, devtools
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100