co_instrumentation and co_monitoring Unexpectedly Set
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug report
Bug description:
I ran into the following problematic case with gh-133221 (which had to be reverted):
import sys
import _testinternalcapi
def foo():
pass
def trace_temporarily():
sys._getframe().f_trace_opcodes = True
sys.settrace(print)
sys.settrace(None)
sys._getframe().f_trace_opcodes = False
trace_temporarily()
_testinternalcapi.verify_stateless_code(foo.__code__)
foo()
_testinternalcapi.verify_stateless_code(foo.__code__) # fails
(See https://github.com/python/cpython/pull/133221#issuecomment-2853467104.)
I would expect co_instrumentation and co_monitoring to have remained NULL.
CC @markshannon
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das bereitgestellte Beispiel im CPython main branch und konzentriere dich dabei auf sys.settrace, f_trace_opcodes und _testinternalcapi.verify_stateless_code. Verfolge, wie sich der Zustand von co_instrumentation und co_monitoring während des vorübergehenden Tracings ändert, und bestätige den Fix, indem du sicherstellst, dass beide nach der Ausführung von foo() NULL bleiben und die Verifizierung erfolgreich ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100