python / python/cpython

In REPL `dis.distb()` raise AttributeError when the previous input fails to compile

Offen
#148,306 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

stdlib topic-repl type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug report

Bug description:

in REPL input following sequentially

  1. import dis
  2. some invalid code
  3. dis.distb()
>>> import dis
>>> ??? 
  File "<stdin>", line 1
    ???
    ^
SyntaxError: invalid syntax
>>> dis.distb()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
    dis.distb()
    ~~~~~~~~~^^
  File "/home/dev/cpython/Lib/dis.py", line 150, in distb
    while tb.tb_next: tb = tb.tb_next
          ^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'tb_next'

It looks like dis.distb() doesn’t handle the case where the previous exception’s traceback could be None in the REPL.

CPython versions tested on:

3.14, CPython main branch

Operating systems tested on:

Windows

Linked PRs
  • gh-148317

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in Lib/dis.py bei dis.distb() in Zeile 150 und reproduziere die gemeldete REPL-Sequenz: import dis, gib ungültigen Code ein und rufe anschließend dis.distb() auf. Fertig ist es, wenn der letzte Befehl nach dem vorherigen Kompilierungsfehler nicht mehr AttributeError auslöst; prüfe vor dem Beginn die verlinkte Arbeit gh-148317.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.