Stack overflow in pydev debugger when putting breakpoint on instance that overrides __getattr__ And __setattr__
I would like to report a bug on pydev debugger. Consider below code:
class ClassA:
def __getattr__(self,name):
try:
return self._attrs[name]
except KeyError:
raise AttributeError(name)
def __setattr__(self,name, value):
try:
object.__setattr__(self, name, value)
except AttributeError:
if self._attrs:
self._attrs[name] = value
else:
self._attrs = {name: value}
a = ClassA()
a.foo = 'bar'
print(a.foo)
The above code will run fine. However, if I put breakpoint inside __getattr__ and __setattr__ or at a.foo = 'bar', the pydev debugger will exit because stack overflow:
File "C:/Users/Firman/PycharmProjects/test_getattr/test.py", line 9 in __getattr__
File "C:/Users/Firman/PycharmProjects/test_getattr/test.py", line 9 in __getattr__
File "C:/Users/Firman/PycharmProjects/test_getattr/test.py", line 9 in __getattr__
File "C:/Users/Firman/PycharmProjects/test_getattr/test.py", line 9 in __getattr__
...
My platform is Windows 10, python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
Please sign in to leave a comment.
Thank you, please follow the issue I created based on your report: https://youtrack.jetbrains.com/issue/PY-40400