You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Interpreter error when running a script under debugger control #47665
bpo-2378: UnboundLocalError when trying to raise exceptions inside execfile
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2008-07-21.09:29:43.518>created_at=<Date2008-07-19.05:32:34.369>labels= ['interpreter-core', 'type-bug']
title='Interpreter error when running a script under debugger control'updated_at=<Date2008-07-21.09:29:43.456>user='https://bugs.python.org/nirai'
Interpreter error results in erroneous exception when running a script
under debugger control.
Full repro description:
On Windows System, try to run idle.py under the inspection of pdb.py.
Note that you must set a breakpoint somewhere otherwise pdb will not
trace the script and the issue will not surface.
You should get the bad exception in line 295 of multicall.py
Python complains that a local variable has been used before being
declared while in effect it has been a couple of lines before that point.
For reference, here is the output of the pdb session:
gbr@lap ~/devel/python> ./python Lib/pdb.py Lib/idlelib/idle.py
> /home/gbr/devel/python/Lib/idlelib/idle.py(1)<module>()
-> try:
(Pdb) break multicall.py:300
*** 'multicall.py' not found from sys.path
(Pdb) break idle.py:10
Breakpoint 1 at /home/gbr/devel/python/Lib/idlelib/idle.py:10
(Pdb) c
Traceback (most recent call last):
File "/home/gbr/devel/python/Lib/pdb.py", line 1275, in main
pdb._runscript(mainpyfile)
File "/home/gbr/devel/python/Lib/pdb.py", line 1192, in _runscriptself.run(statement)
File "/home/gbr/devel/python/Lib/bdb.py", line 366, in runexec cmd inglobals, locals
File "<string>", line 1, in <module>
File "Lib/idlelib/idle.py", line 21, in <module>
idlelib.PyShell.main()
File "/home/gbr/devel/python/Lib/idlelib/PyShell.py", line 1396, in main
shell = flist.open_shell()
File "/home/gbr/devel/python/Lib/idlelib/PyShell.py", line 275, in
open_shell
self.pyshell = PyShell(self)
File "/home/gbr/devel/python/Lib/idlelib/PyShell.py", line 816, in
__init__
OutputWindow.__init__(self, flist, None, None)
File "/home/gbr/devel/python/Lib/idlelib/OutputWindow.py", line 16, in
__init__
EditorWindow.__init__(self, *args)
File "/home/gbr/devel/python/Lib/idlelib/EditorWindow.py", line 108,
in __init__
self.text = text = MultiCallCreator(Text)(
File "/home/gbr/devel/python/Lib/idlelib/MultiCall.py", line 294, in
MultiCallCreator
classMultiCall (widget):
File "/home/gbr/devel/python/Lib/idlelib/MultiCall.py", line 295, in
MultiCall
assertissubclass(widget, Tkinter.Misc)
NameError: free variable 'widget' referenced before assignment in
enclosing scope
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /home/gbr/devel/python/Lib/idlelib/MultiCall.py(295)MultiCall()
-> assert issubclass(widget, Tkinter.Misc)
(Pdb)
I *think* we had some similar issue with trace functions and class
scopes in the past, but can't remember where.
Activity
nirai commentedon Jul 19, 2008
Interpreter error results in erroneous exception when running a script
under debugger control.
Full repro description:
On Windows System, try to run idle.py under the inspection of pdb.py.
Note that you must set a breakpoint somewhere otherwise pdb will not
trace the script and the issue will not surface.
You should get the bad exception in line 295 of multicall.py
Python complains that a local variable has been used before being
declared while in effect it has been a couple of lines before that point.
Nir
birkenfeld commentedon Jul 19, 2008
For reference, here is the output of the pdb session:
I *think* we had some similar issue with trace functions and class
scopes in the past, but can't remember where.
amauryfa commentedon Jul 21, 2008
This issue is a duplicate of bpo-2378; the patch attached there
corrects this problem. I will commit it tonight.